对我来说,连接一直是可读的,或者它是可写的。
我们不能依赖于r / w事件? 当客户端关闭连接时,r / w迟早会得到错误返回,然后我们可以关闭fds。
所以连接管理的唯一含义是防止连接什么都不做(它可能一直可写到服务器,但服务器在正常交互后无法写入),这是对的吗?
答案 0 :(得分:1)
对我来说,连接一直是可读的,或者它是可写的
不,它没赢。它只有在套接字接收缓冲区中已存在数据时才可读,并且只有在套接字发送缓冲区中有空间时才能读取(大部分时间,但不是全部)。
select()
是的内容:告诉您这些事件发生的时间。
我们不能依赖于r / w事件吗?
如果这意味着'读写'事件,select()
给你的东西。如果你的意思是别的什么,你将不得不解释什么。
当客户端关闭连接时,r / w迟早会收到错误返回
不,它没赢。它将结束流指示。这需要几种形式,具体取决于您使用的API和语言,但这些都不是错误。
然后我们可以关闭fds。
当你完成它们时,你应该关闭fd
,但网络编程要比这更多。
所以连接管理的唯一含义是防止连接什么都不做(它可能一直可写到服务器,但服务器在正常交互后无法写入),这是对的吗?
没有意义。您已经介绍了“连接管理”这一术语'没有来源或引用,然后声明它只具有你归于它的意义,没有证据,并且“' so'只是一个 non sequitur。