SOCKET内查对象的发送缓冲区和接收缓冲区是否是同一个
SOCKET内核对象的发送缓冲区和接收缓冲区是否是同一个
初学网络编程,这个问题一直困扰着我,请大神指点一二。
我们调用send的时候,是将数据从我们自己定义的发送缓冲区拷贝到SOCKET的内核对象的发送缓冲区。
调用recv的时候,是将数据从SOCKET内核对象的接收缓冲区拷贝到我们自定义的接收接收缓冲区。
我想问的是:在SOCKET内核对象中,它的发送缓冲区和接收缓冲区是否是同一个缓冲区(既存储接收数据,又存储要发送的数据) ???
如果是同一个,那么是不是操作的时候,一般要先接收完对方发来的数据(调用recv) 然后才调用 send发送我们要发送的数据 ?
如果不是同一个的话,那么收发就互不影响了?(比如,在SOCKET内核对象接收缓冲区满的情况下,同样可以send成功)
------解决方案--------------------
不是,socket是全双工的
------解决方案--------------------
肯定不是同一个嘛 你觉得邮局会把来本市的信件个发出去的信件放一个箱子里么?(当然你要不嫌累你也可以这么干)
初学网络编程,这个问题一直困扰着我,请大神指点一二。
我们调用send的时候,是将数据从我们自己定义的发送缓冲区拷贝到SOCKET的内核对象的发送缓冲区。
调用recv的时候,是将数据从SOCKET内核对象的接收缓冲区拷贝到我们自定义的接收接收缓冲区。
我想问的是:在SOCKET内核对象中,它的发送缓冲区和接收缓冲区是否是同一个缓冲区(既存储接收数据,又存储要发送的数据) ???
如果是同一个,那么是不是操作的时候,一般要先接收完对方发来的数据(调用recv) 然后才调用 send发送我们要发送的数据 ?
如果不是同一个的话,那么收发就互不影响了?(比如,在SOCKET内核对象接收缓冲区满的情况下,同样可以send成功)
socket
内核
网络编程
对象
------解决方案--------------------
不是,socket是全双工的
------解决方案--------------------
肯定不是同一个嘛 你觉得邮局会把来本市的信件个发出去的信件放一个箱子里么?(当然你要不嫌累你也可以这么干)