Лан чат дизайн - PullRequest
       11

Лан чат дизайн

0 голосов
/ 12 декабря 2011

Я пытаюсь написать приложение для чата, и у меня есть несколько проблем что я пытаюсь отработать. Приложение представляет собой приложение для чата, которое работает на локальной сети. Один клиент действует как хост и другие клиенты могут подключаться к хосту и публично общаться между собой. Я хочу также вариант запуска клиента приватный чат с уже подключенным клиентом. Так что это лучший способ для этого. Например, следует запросить сообщение (которое содержит IP-адрес клиента) маршрут через хост, а затем, если запрашиваемый клиент хочет подключиться, они инициируют подключение используя ip запрашивающего клиента. Должно ли это быть также на отдельном номере порта. Имеет ли значение, если ваше приложение использует несколько портов.

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

Надеюсь, все это имеет смысл. Любая помощь будет оценена

Спасибо

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Если вы просто заинтересованы в быстром и «грязном» чате, который должен работать только через локальную сеть, я бы рекомендовал всем клиентам отправлять и получать широковещательные UDP-пакеты по одному общеизвестному номеру порта.Тогда сервер вообще не нужен, и, следовательно, нет необходимости в обнаружении, и все намного проще.

Если вы действительно хотите идти по пути клиент-сервер, у вас должен быть свой сервер (иначехост) машина принимает TCP-соединения на одном общеизвестном порту, а затем использует select () или poll () для мультиплексирования входящих TCP-соединений и пересылки любых данных, поступающих из каждого входящего TCP-сокета, на все остальные сокеты,Клиенты могут подключаться через TCP к серверу через этот известный порт, но клиенты должны будут каким-то образом знать, к какому IP-адресу подключаться ... либо из-за того, что пользователь вводит IP-адрес сервера, либокаким-то механизмом обнаружения (для реализации этого могут использоваться широковещательные пакеты UDP).Этот способ требует гораздо больше работы.

0 голосов
/ 12 декабря 2011

Я все для создания своего собственного, но в зависимости от временных ограничений иногда я ищу альтернативы, такие как this Я использовал его в компании, в которой работал раньше.Это действительно хорошо.Но если вы решите сделать свой собственный, вам сначала нужно наметить логику, структуру, базу данных и так далее, прежде чем вы даже подумаете о коде ..

...