如何在vxworks中查找套接字描述符的状态

时间:2010-11-11 17:34:50

标签: c sockets vxworks rtos

如何借助vxworks中的套接字描述符检查远程端的状态。我正在使用TCP连接。

3 个答案:

答案 0 :(得分:0)

VxWorks使用BSD套接字API。当远程站终止连接时,I / O函数(如read()和write()函数)将返回错误状态(读/写为-1)并设置 errno

答案 1 :(得分:0)

在我使用的至少一些BSD派生的堆栈上,您可以使用getpeername()检查另一端是否已关闭。在支持堆栈上,如果另一端已关闭其连接的一半,则返回-1并设置ENOTCONN。

这允许您查询另一端是否已调用close()而无需进行套接字读取调用。与前面所述的相反,可以从IP堆栈中找到它而不启动到另一端的某些连接,因为当另一端关闭其一半连接时,IP栈接收FIN通知。然后,堆栈可以使用此信息通知将来getpeername()调用者另一端已关闭。

答案 2 :(得分:-1)