如何从异步套接字连接报告错误?


7

我正在异步连接套接字(O_NONBLOCK + connect)。 POSIX标准规定,在套接字连接之后,应通过使套接字的文件描述符准备好写入来发信号通知事件。它似乎没有说异步连接过程中的失败。

在Linux上进行测试时,似乎有时会得到POLLOUT,有时候会出现POLLERR。行为中是否有任何模式?我能否以单一方式报告错误? POSIX说了一些我忽略的东西吗?

4

D. J. Bernstein有一些看起来可能相关的东西:http://cr.yp.to/docs/connect.html。他特别提出了几种不同的方法来排除错误。

Unix套接字FAQ对Connect with timeout一个部分,即包括从使用getsockopt

  0

两种文本假定连接通知有关连接成功/失败的POLLOUT事件的用户连接失败得到的错误。但是,我所看到的是Linux为此使用POLLOUT或POLLERR。 22 2月. 092009-02-22 11:28:09