我在Linux/FreeBSD上有一个活动的运行过程。我对它进行了跟踪,并发现其中一个线程在调用函数write()时被阻塞--作为参数,它有一个TCP套接字。可能要挂几个小时了。
检查阻塞write()背后的原因的方法是什么?潜在的问题是什么?
系统实用程序将不胜感激。
发布于 2014-02-26 14:36:13
在我目前的案例中,出现了以下问题。DNS决议给了我一些IP地址,那是很遥远的,甚至是无法到达的.write()挂起是因为从未从该主机接收到TCP响应。
通过setsockopt和SO_SNDTIMEO在发送操作上设置超时解决了这个问题。
https://stackoverflow.com/questions/21725716
复制相似问题