Tcp WSASend()是否隐藏大缓冲区的批处理?

Tcp WSASend()是否隐藏大缓冲区的批处理?,tcp,buffer,winsock,Tcp,Buffer,Winsock,我现在正在测试大型缓冲区,并在WSABUF中设置它,然后调用WSASend()next 但问题是,WSARecv()一次就把那个大缓冲区还给了它 这有意义吗 对于大型缓冲区,WSASend()和WSARecv()的限制在哪里 看起来批处理是在后台进行的,所有这些都隐藏在抽象背后 如果是这样的话,我希望我的申请总是如此 限制分别是套接字发送和接收缓冲区大小 WSASend()。同时,TCP异步地从套接字发送缓冲区中删除数据,以您无法控制的方式将其转换为TCP段,并将这些段传递到IP层,而IP层又以

我现在正在测试大型缓冲区,并在WSABUF中设置它,然后调用
WSASend()
next

但问题是,
WSARecv()
一次就把那个大缓冲区还给了它

这有意义吗

对于大型缓冲区,
WSASend()
WSARecv()
的限制在哪里

看起来批处理是在后台进行的,所有这些都隐藏在抽象背后


如果是这样的话,我希望我的申请总是如此

限制分别是套接字发送和接收缓冲区大小

WSASend()。同时,TCP异步地从套接字发送缓冲区中删除数据,以您无法控制的方式将其转换为TCP段,并将这些段传递到IP层,而IP层又以您无法控制的方式将其转换为IP数据包

WSARecv()
在套接字接收缓冲区中没有数据时阻塞,并在套接字接收缓冲区中的所有数据传输到应用程序时返回,直至应用程序提供的限制。这可能只有一个字节,或者整个应用程序缓冲区,或者介于两者之间的任何内容,这完全取决于接收内容的粒度

所有这些都是指阻塞模式。非阻塞模式与此类似,只是存在错误返回,而不是上面的块