TCP阻止套接字-在不同数据包中接收少量字节的可能性

诏书

如果服务器发送4个字节

send(sock, buffer1, 4, 0);

客户端恰好等待4个字节

recv(sock, buffer2, 4, 0);

是否有可能写入少于4个字节buffer2没有其他的sendrecv以前做过的。

如果没有可能,send可以执行的最大缓冲区大小是多少,以便recv一次调用可以得到相同的缓冲区大小。

2088639

在手册页中recv

“这些调用返回接收到的字节数,如果发生错误,则返回-1。

对于TCP套接字,返回值0表示对等方已关闭其连接的一半。”

这样recv总是允许返回所有发送的字节数,不是较少的发送的字节数,或者根本没有发送字节。您不能仅仅因为碰巧知道send连接另一端正在做什么而做任何事情

无法保证您始终都能获得完整的消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TCP阻止套接字-在不同数据包中接收少量字节的可能性

来自分类Dev

原始套接字中的TCP数据包-Centos 6.6

来自分类Dev

Swift中的TCP套接字

来自分类Dev

PHP反复从TCP套接字接收数据

来自分类Dev

使用从TCP套接字[python]接收的数据

来自分类Dev

C ++,TCP套接字无法接收数据

来自分类Dev

Android TCP 套接字不接收数据

来自分类Dev

套接字 TCP 通信数据包拆分

来自分类Dev

设置套接字接收TCP超时

来自分类Dev

TCP套接字发送/接收始终等待

来自分类Dev

Java TCP套接字未正确接收

来自分类Dev

TCP:套接字发送/接收顺序

来自分类Dev

Java Tcp套接字发送额外的数据?

来自分类Dev

TCP套接字复用发送大数据

来自分类Dev

模拟Windows中TCP套接字的慢速

来自分类Dev

.NET中的TCP套接字分片

来自分类Dev

从线程中的Java TCP套接字读取

来自分类Dev

iOS:在套接字中读写(TCP连接)

来自分类Dev

通过GO中的原始套接字读取TCP数据包

来自分类Dev

zmq tcp套接字是否与常规tcp不同?

来自分类Dev

通过TCP接收字节数据包

来自分类Dev

如何在套接字连接中接收 tcp 标志

来自分类Dev

无法接收到原始套接字的数据包

来自分类Dev

如何使用Qt阻止tcp套接字?

来自分类Dev

TCP套接字函数recv()阻止程序

来自分类Dev

即使数据可在套接字上读取,pselect也会阻止

来自分类Dev

Python 2.7.8:套接字-TCP套接字中的客户端服务器数据丢失

来自分类Dev

C TCP套接字-获取数据包目标名称

来自分类Dev

有关数据包和缓冲区大小的TCP套接字编程