какой протокол, используемый для разработки приложения чата по LAN?

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

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

6
задан coderex 9 March 2010 в 19:07
поделиться

6 ответов

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

0
ответ дан 9 December 2019 в 22:32
поделиться

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

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

7
ответ дан 9 December 2019 в 22:32
поделиться

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

0
ответ дан 9 December 2019 в 22:32
поделиться

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

0
ответ дан 9 December 2019 в 22:32
поделиться

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

1
ответ дан 9 December 2019 в 22:32
поделиться

Вы не даете нам много деталей!

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

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

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

3
ответ дан 9 December 2019 в 22:32
поделиться