域套接字“sendto”遇到“errno 111,连接被拒绝”

前端之家收集整理的这篇文章主要介绍了域套接字“sendto”遇到“errno 111,连接被拒绝”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用域套接字从另一个进程获取值,比如A从B获取值,它可以运行好几个月.但是最近,A在“发送到”消息期间失败了,偶尔会出现“errno 111,连接被拒绝”.

我检查了B域套接字绑定文件,它存在.我也在另一台机器上做了一些测试,也运行良好.那么,之前有没有人遇到过这个问题?任何人都可以找到一些可能在这种情况下可能出错的线索吗?非常感谢.

解决方法

当我用unix域套接字看到这个错误时,通常是因为进程B没有运行,或者连接路径不匹配. (如果B死了,是否会自动重启?B可能会在B已经死亡但尚未重启的情况下发生故障吗?).另一种可能性:A的多个副本是否可能同时运行?如果B的尚未接受的连接队列已满,则可能会收到ECONNREFUSED错误.

我建议在strace下运行进程A和B,或者:

strace -o A.log A

或者,如果该过程已经运行,

strace -o B.log -p <process-id-of-B>

也,

netstat -na

将为您提供系统中存在的所有unix域套接字的状态.

猜你在找的C&C++相关文章