Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我目前有一个在 TCP 套接字上侦听和发送的程序。
我遇到的问题是我发送了一个数据包,有时它会分解成碎片。所以我的监听 TCP 套接字类认为进来的第一部分是整个有效载荷。
人们在使用 TCP 连接进行编程时采用的典型方法是什么?
您不能假设第一部分是整个有效负载。您必须继续阅读套接字,直到获得所有内容。
有两种选择:
选项 1 标记消息(数据结构)的结尾。然后,您的听众会继续阅读,直到收到消息结束标记。
选项 2 在发送实际数据之前发送消息或数据结构的长度。然后,您的侦听器会继续阅读,直到它读取所有字节。