[英]So setsockopt for timeouts on AF_UNIX (AF_LOCAL) sockets… undocumented/don't work… options/alternatives?
如果有的话,我正在运行Fedora 13。
我在unix(7),setsockopt和send / recv上查找了手册页。
阅读手册页似乎或多或少地告诉我,并非所有选项都可以保证能做任何事情……而且显然,实际上只有少数文件起作用/不起作用。
特别是...我想看看是否有可能超时。 至少在我的系统上,SO_RCVTIMEO实际上为recv调用系列设置了一个定时输出...但是SO_SNDTIMEO却将套接字设置为无超时的无阻塞模式。
所以我的问题是...我该怎么办才能解决setockopt不是在AF_UNIX套接字上使用超时的可靠方法的事实?
嗯,带有超时的select(2)
或poll(2)
或epoll(4)
怎么样?
我该如何解决setockopt不是在AF_UNIX套接字上使用超时的可靠方法的事实?
好吧,不要使用它们。
我在G-WAN(Web应用服务器)中使用了epoll(4),不得不面对同样的问题。
基本上有三种处理超时的方法:
有些使用管道唤醒您要操作的fds。 我的测试表明,这是对资源的极大浪费。 无论您做什么,这都是效率低下或棘手的。 有时候,两者都有(由于愚蠢的内核开发人员)。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.