Заблокирован

Чат на сокетах (TCP)

07.12.2015, 13:37. Показов 4287. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как реализовать? в принципе работал с сокетами, но не понимаю как конкретно чат делается? ведь всегда должен быть сервер по идее, я могу сделать обмен сообщений между клиентом и сервером, а вот как сделать между несколькими клиентами? и потом обязательно ли при этом должен работать отдельный сервер? (слушающий сокет) или это каждый клиент должен быть в этом случае представлен слушающим сокетом? че то я вот с этим запутался
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2015, 13:37
Ответы с готовыми решениями:

Реализовать на tcp сокетах переподключение к tcp серверу в случае потери соединения
Всем привет, подскажите как можно реализовать на tcp сокетах переподключение к tcp серверу в случае потери соединения?

Чат на сокетах
Проблема в работе чата: отправляется только первое сообщение, а дальше всё зависает. Предположительно надо использовать асинхронные функции...

Не работает чат на сокетах
Привет. Есть чат на сокетах но, при попытке коннекта программа просто зависает. Уже окончательно запутался. Прошу помощи у форумчан. Весь...

9
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
07.12.2015, 13:51
Цитата Сообщение от Volrajas Посмотреть сообщение
а вот как сделать между несколькими клиентами?
Для этого и существует сервер - принять от одного - разослать всем.

Сервер должен быть, иначе придется знать ip каждого клиента, и набивать его вручную.

Первоначально роль сервера исполняет какой-либо комп, но вполне реально, реализовать переключение на другой,
переопределение роли сервера - причем так, чтобы все переключались именно на определенный.

Исходников здесь и в сети полно.

Цитата Сообщение от Volrajas Посмотреть сообщение
че то я вот с этим запутался
Глянь исходники, есть TCPServer, TCPClient, чтобы реализовать функционал сервера и клиента одновременно,
(для возможности переключения итп) - нужно прописывать и то и то желательно в проге.
0
Заблокирован
07.12.2015, 14:28  [ТС]
кажется разобрался, думаю самое простое будет просто чтобы сервер принимал сообщение от одного клиента и рассылал его всем остальным клиентам (+ там допилить чтобы имя клиента тоже пересылалось и т.п.)

Добавлено через 20 минут
единственное что я не знаю еще как сделать чтобы не надо было клиенту вводить ip и порт сервера? (при подключении) я только так делал... но так же не делают в чатах

Добавлено через 1 минуту
или это как бы можно просто задать в коде исходя из того что у сервера всегда будет один и тот же ip и порт?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
07.12.2015, 15:46
Цитата Сообщение от Volrajas Посмотреть сообщение
исходя из того что у сервера всегда будет один и тот же ip и порт?
Ну а как работают сайты? У cyberforum.ru какой айпишник? Правильно - без разницы.
Штука называется DNS - ее можно использовать, но для чата самопального лучше придумать аналог, -
фиксированный IP сервера, или фиксированное место в сети где его клиенты могли бы достать.
0
Заблокирован
07.12.2015, 16:01  [ТС]
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Ну а как работают сайты? У cyberforum.ru какой айпишник? Правильно - без разницы.
Штука называется DNS - ее можно использовать
не знаю, не силен
Цитата Сообщение от Volrajas Посмотреть сообщение
или это как бы можно просто задать в коде исходя из того что у сервера всегда будет один и тот же ip и порт?
или еще лучше прописать в каком нибудь конфигурационном файле для клиента (чтобы не перекомпилировать)
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
07.12.2015, 18:01
Цитата Сообщение от Volrajas Посмотреть сообщение
не знаю, не силен
Таки для компьютерщика любого рода, - кодера, админа, инженера - не знать что такое DNS..............
0
Заблокирован
07.12.2015, 18:07  [ТС]
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Таки для компьютерщика любого рода, - кодера, админа, инженера - не знать что такое DNS..............
я не волшебник компьютерщик, я только учусь и если честно я не жажду иметь ничего общего с веб разработкой, пусть даже это самое популярное направление сейчас (вроде бы), я пробовал и HTML / CSS и PHP не нравятся хоть убей, вот C# это реально самый классный язык, я его обожаю
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
07.12.2015, 18:11
Цитата Сообщение от Volrajas Посмотреть сообщение
C# это реально самый классный язык, я его обожаю
Тут поддерживаю.

Но, есть базовые вещи, которые должны быть известны "с пеленок" любому человеку,
тесно связанному с компами, не зависимо от специфики профессии.
0
Заблокирован
07.12.2015, 18:14  [ТС]
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Но, есть базовые вещи, которые должны быть известны "с пеленок" любому человеку,
тесно связанному с компами, не зависимо от специфики профессии.
ну у нас сейчас как раз на 4 курсе начались подобные предметы (системное администрирование, сети и т.п.), а я просто еще не успел все запомнить
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
07.12.2015, 18:16
Цитата Сообщение от Volrajas Посмотреть сообщение
начались подобные предметы
А ну тогда норм
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2015, 18:16
Помогаю со студенческими работами здесь

Сервер на сокетах TCP
Здравствуйте.Пробую по примеру сделать простенький чат на TCP. В клиенте отсылаю сообщения, но до сервера доходит только первое. В чем...

Клиент-серверное приложение на сокетах TCP. Умножение матрицы на матрицу
Здравствуйте! Нужно создать клиент-серверное приложение, с помощью которого реализуется умножение матрицы на матрицу. Массивы матриц...

TCP-Чат
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Чат на протоколе TCP
Доброго времени суток Пишу чат на протоколе TCP и столкнулся с такой проблемой: дублируется сообщение себе же... то есть я пишу, как...

TCP интернет-чат между пользователями
Помогите. Не получается. На компе у себя работает всё ок. а если с другом , то проблема - не подкл. типа не было отклика и т.д.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru