本文主要是介绍Unix Network Programming vol1 笔记 TCP/IP的缓冲,全双工,半关闭 shutdown 函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. TCP/IP 连接是全双工的连接,连接端两端同时可以发送和接受数据;
2. 如果连接的一端A对一个全双工工作的TCP/IP连接调用close,A会先把发送送缓冲区的数据发送完,然后,发送FIN,但同时A却丢弃接受缓冲区的数据,并且对于对方B继续发送的数据,直接丢弃,这会造成A接受到的数据小于对方发送的数据的情况;如果A调用shutdown(socket, SHUT_WR)的话,只关闭A的写,即只关闭A向B发送数据的方向的连接,A可以接受B发送过来的数据,这样不会造成主动调用close这方的数据丢失。2.6,6.5,6.6
3. 问题:主动调用close,FIN发出以后,如果在TCP/IP连接的管道中还有数据,这些数据还没有被确认,接受方如何保证接受到并处理FIN前,合理的处理这些数据?还是会忽略这些数据,这样也会造成数据丢失。
待续。。
这篇关于Unix Network Programming vol1 笔记 TCP/IP的缓冲,全双工,半关闭 shutdown 函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!