我想用c ++创建一个聊天应用程序(桌面应用程序),所以我需要研究和实现哪个协议。 UDP(?)
请提供一些好的想法,建议和链接。
答案 0 :(得分:7)
UDP协议不是Internet聊天程序的最佳选择。 UDP数据包将被代理阻止。并且UDP不保证数据包传输。因此,TCP协议可能是更好的选择。
查看Boost.Asio图书馆。它已经包含chat program的原始实现。
答案 1 :(得分:3)
你这里没有给我们太多详细信息!
如果你的目的是为了使一个完全正常工作和功能完整的聊天应用程序,我建议你看看XMPP这是一个开放的即时消息协议。 Here是一些实现它的库的列表。
如果您的目的是研究网络编程,并且您对UDP与TCP更感兴趣,那么UDP对于聊天应用程序来说是一个糟糕的选择,因为它不能保证数据的完整性或排序。您的消息可能(并且将会!)收到错误的订单或者甚至可能丢失一些消息。 TCP会为您进行检查。
在两者之间(一个非常简单的聊天应用),您可以实现自己的协议并使用其他人在此处建议的库,例如Boost.asio,ACE,POCO,甚至{{3 }和wxWidgets,它将简化套接字处理,并提供构建最后2个桌面应用程序所需的内容。
答案 2 :(得分:1)
尝试使用Boost.Asio。文档中包含一些examples of chat applications。
答案 3 :(得分:0)
您可以使用或查看像ACE这样的开源网络库。那里有很多好东西。
答案 4 :(得分:0)
您可以使用处理即时消息传递协议的现有库,例如libpurple
。
答案 5 :(得分:0)