用于通过LAN开发聊天应用程序的协议?

时间:2010-03-09 19:07:38

标签: c++ c network-programming udp sockets

我想用c ++创建一个聊天应用程序(桌面应用程序),所以我需要研究和实现哪个协议。 UDP(?)

请提供一些好的想法,建议和链接。

6 个答案:

答案 0 :(得分:7)

UDP协议不是Internet聊天程序的最佳选择。 UDP数据包将被代理阻止。并且UDP不保证数据包传输。因此,TCP协议可能是更好的选择。

查看Boost.Asio图书馆。它已经包含chat program的原始实现。

答案 1 :(得分:3)

你这里没有给我们太多详细信息!

如果你的目的是为了使一个完全正常工作和功能完整的聊天应用程序,我建议你看看XMPP这是一个开放的即时消息协议。 Here是一些实现它的库的列表。

如果您的目的是研究网络编程,并且您对UDP与TCP更感兴趣,那么UDP对于聊天应用程序来说是一个糟糕的选择,因为它不能保证数据的完整性或排序。您的消息可能(并且将会!)收到错误的订单或者甚至可能丢失一些消息。 TCP会为您进行检查。

在两者之间(一个非常简单的聊天应用),您可以实现自己的协议并使用其他人在此处建议的库,例如Boost.asioACEPOCO,甚至{{3 }和wxWidgets,它将简化套接字处理,并提供构建最后2个桌面应用程序所需的内容。

答案 2 :(得分:1)

尝试使用Boost.Asio。文档中包含一些examples of chat applications

答案 3 :(得分:0)

您可以使用或查看像ACE这样的开源网络库。那里有很多好东西。

答案 4 :(得分:0)

您可以使用处理即时消息传递协议的现有库,例如libpurple

答案 5 :(得分:0)

UDP就像是一种“射击而忘记”的协议。这很快,但如果您使用它进行互联网通信,则无法保证您的邮件将被收到。即使它是LAN,您的数据包仍然可能丢失。使用TCP会更方便,确保您的数据包没有错误地按照您发送的顺序到达。