在局域网上开发聊天应用程序使用哪种协议? 我想在C++中创建一个聊天应用程序(桌面应用程序),所以我需要学习和实现哪个协议。UDP(?)

在局域网上开发聊天应用程序使用哪种协议? 我想在C++中创建一个聊天应用程序(桌面应用程序),所以我需要学习和实现哪个协议。UDP(?),c++,c,network-programming,udp,sockets,C++,C,Network Programming,Udp,Sockets,请提供一些好的想法、建议和链接。您可以使用或查看类似的开源网络库。那里有很多好吃的东西 您可以使用处理即时消息协议的现有库,例如。UDP协议不是Internet聊天程序的最佳选择。UDP数据包将被代理阻止。UDP不能保证数据包的传递。所以TCP协议可能是一个更好的选择 看看图书馆。它已经包含的基本实现。请尝试使用Boost.Asio。文档中包含了一些信息。您在这里没有提供太多详细信息 如果你的目的真的是要制作一个功能齐全的聊天应用程序,我建议你看看这是一个开放的即时通讯协议。是一些实现它的库的列

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

您可以使用或查看类似的开源网络库。那里有很多好吃的东西

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

UDP协议不是Internet聊天程序的最佳选择。UDP数据包将被代理阻止。UDP不能保证数据包的传递。所以TCP协议可能是一个更好的选择


看看图书馆。它已经包含的基本实现。

请尝试使用Boost.Asio。文档中包含了一些信息。

您在这里没有提供太多详细信息

如果你的目的真的是要制作一个功能齐全的聊天应用程序,我建议你看看这是一个开放的即时通讯协议。是一些实现它的库的列表

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


在这两者之间(一个非常简单的聊天应用程序),您可以实现自己的协议,并使用其他人在这里建议的库,如、、甚至和,这将简化套接字处理,并提供您在过去2年中构建桌面应用程序所需的功能。

UDP类似于一种“一拍即合”的协议。它很快,但是如果你用它在互联网上交流,你的信息就不能保证会被接收到。即使是局域网,您的数据包也可能丢失。使用TCP会更方便,因为它可以确保您的数据包以正确的顺序到达。

+1表示TCP,我会为Boost.Asio(尤其是它的TCPStream)提供另一个+1。我发现Asio的文档记录很差,支持不好,即使是有经验的程序员也很难理解。我不推荐。