【发布时间】:2017-04-04 02:22:31
【问题描述】:
有一个客户端和一个服务器,在应用层,客户端正在向服务器发送具有随机负载大小的数据包。这意味着一个数据包可以是 1300 字节,下一个数据包可以是 450 字节,下一个数据包可以是 1449 字节,依此类推。在服务器上,您如何读取从客户端传入的有效负载数据?您的套接字应该读取多少数据?考虑到客户端无法发送它正在发送的有效负载大小的事实。服务器如何区分 1300、450 和 1449 字节的单个数据包。我们在 C 中使用 POSIX 套接字并在应用层工作。任何代码 sn-p 都会有所帮助。
【问题讨论】:
-
你使用什么协议? IE。
socket调用的参数是什么? -
Any code snippet will be helpful是的,没错,这将有助于我们理解您的问题 ;-) 说真的,请编辑问题,使其适合此处。 -
这是用于 TCP 还是 UDP?我假设 TCP,考虑到“客户端无法发送它正在发送的有效负载大小”在 UDP 上不是问题,只有 TCP。为什么客户端无法发送有效负载大小?在 TCP 中,除非发送方发送有效载荷大小或唯一的消息分隔符,否则无法区分消息边界。消息负载实际上是什么样的?
-
欢迎来到 Stack Overflow!请edit您的问题显示what you have tried so far。您应该包含您遇到问题的代码的minimal reproducible example,然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。