какой протокол используется для разработки приложения чата по локальной сети? - PullRequest
6 голосов
/ 09 марта 2010

Я хотел бы создать приложение чата (desktop-app) на c ++, поэтому какой протокол мне нужно изучить и реализовать. UDP (?)

Пожалуйста, предоставьте мне несколько хороших мыслей, советов и ссылок.

Ответы [ 6 ]

7 голосов
/ 09 марта 2010

Протокол UDP не лучший выбор для программы интернет-чата. UDP-пакеты будут заблокированы прокси. А UDP не гарантирует доставку пакетов. Так что, вероятно, протокол TCP будет лучшим выбором.

Взгляните на Boost.Asio Библиотека. Он уже содержит примитивную реализацию программы чата .

3 голосов
/ 09 марта 2010

Вы не даете нам подробностей здесь!

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

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

Между ними (очень простое приложение для чата) вы можете реализовать свой собственный протокол и использовать библиотеки, которые другие здесь предложили, такие как Boost.asio , ACE , POCO или даже wxWidgets и Qt , которые упростят обработку сокетов и также обеспечат то, что вам нужно для создания настольного приложения для последних 2.

1 голос
/ 09 марта 2010

Попробуйте использовать Boost.Asio. Есть несколько примеров приложений чата , включенных в документацию.

0 голосов
/ 09 марта 2010

UDP подобен протоколу «стреляй и забывай». Это быстро, но если вы используете его для общения через Интернет, нет никакой гарантии, что ваши сообщения будут получены вообще. Даже если это локальная сеть, ваши пакеты все равно могут быть потеряны. Было бы удобнее использовать TCP, который гарантирует, что ваши пакеты будут доставлены без ошибок и в том порядке, в котором вы их отправили.

0 голосов
/ 09 марта 2010

Вы можете использовать существующую библиотеку, которая обрабатывает протоколы обмена мгновенными сообщениями, такие как libpurple.

0 голосов
/ 09 марта 2010

Вы можете использовать или посмотреть сетевую библиотеку с открытым исходным кодом, например ACE . Там много вкусностей.

...