我正在异步连接套接字(O_NONBLOCK connect). POSIX标准指定在连接套接字之后,应该通过使套接字的文件描述符准备好写入来发出信号.它似乎没有说出异步连接期间的故障.
在Linux上进行测试时,似乎有时候我会在这种情况下获得POLLOUT,有时候会收到POLLERR.行为中是否有任何模式?我可以让它以单一方式报告错误吗? POSIX是否说过我忽略的事情?
解决方法
D. J. Bernstein有一些看似可能相关的东西:
http://cr.yp.to/docs/connect.html.特别是他提出了几种不同的方法来解决错误.
UNIX Socket FAQ在Connect with timeout中有一节,其中包括使用getsockopt从失败的连接中获取错误