-2

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

4

3 回答 3

0

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

于 2010-11-12T14:02:22.773 回答
0

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

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

于 2010-11-18T00:19:04.907 回答
-1

请参考帖子:- 如何限制客户端服务器程序中的连接数

于 2010-11-14T18:12:27.003 回答