我目前有一个侦听和发送TCP套接字的程序。
我遇到的问题是我发送了一个数据包,有时会分成几块。所以我的侦听TCP套接字类认为第一个进入的是整个有效负载。
使用TCP连接进行编程时,人们采用的典型方法是什么?
答案 0 :(得分:2)
你不能假设第一块是整个有效载荷。你必须继续读取插座,直到你得到所有它。
有两种选择:
选项1
标记消息的结尾(数据结构)。然后你的听众继续阅读,直到它得到消息结束标记。
选项2
在发送实际数据之前发送消息或数据结构的长度。然后你的听众继续阅读,直到它读取所有字节。