目前我遇到的问题是,如果我发送缓冲区,它可能只发送部分并返回发送的字节数。有什么方法可以设置某些选项或某物。这会阻止 bsd 套接字部分发送?
最佳答案
通常,对于 TCP 等 SOCK_STREAM
套接字类型,无法执行此操作。 SOCK_DATAGRAM
(对于IP,这意味着UDP)和SOCK_SEQPACKET
(对于IP,没有这样的东西)会做你想要的,但有不同的限制。
无论如何,解决方案是您需要自己进行数据缓冲和成帧。也就是说,您需要在发送的流中包含带内信息,以允许接收者重建您想要的“数据包”边界。
关于c - 如何原子地发送()缓冲区,以便它们不会被部分分派(dispatch)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071524/