Adi*_*gal 9 sockets select system-calls
在http://linux.die.net/man/2/select上,在BUGS部分,提到选择系统调用有时可以虚假地设置FD就绪,随后的读取调用将返回0.文本描述了一个这样的例子(错误的校验和)但我假设还有其他原因(否则他们会解决这个问题).
任何想法可能导致另一个原因选择返回FD准备虚假.
这是否也适用于其他操作系统.我目前正在询问Linux.
上述链接的相关部分:
在Linux下,select()可以将套接字文件描述符报告为"准备好读取",而不是后续的读取块.这可能例如在数据到达时发生但在检查时具有错误的校验和并被丢弃.可能存在其他情况,其中虚假地报告文件描述符为就绪.因此,在不应阻塞的套接字上使用O_NONBLOCK可能更安全.
归档时间: |
|
查看次数: |
4175 次 |
最近记录: |