Linux 缓冲套接字上接收到的所有消息。但在收到之前,这条消息有开始和结束。 Linux 将此消息按顺序写入缓冲区,因此会丢失消息结尾的信息。
我知道在 Linux 中我可以使用 cmsg_header。但是 Windows 不提供 send-/recvmsg() 过程。如何确定缓冲区平台不可知消息的结尾?
最佳答案
我不确定 TCP/IP 连接是否正在交换分隔明确的消息。路由器可以将数据包分段。 (所以 cmsg_header
可能不可靠)。
我所知道的所有基于 TCP/IP 的协议(protocol)(HTTP、SMTP、X11、RPCXDR)都在应用程序级别处理消息组织。您的应用程序库需要以某种方式知道“消息”何时何地开始或结束。
关于c++ - 网络编程。判断消息结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333051/