我有一个奇怪的问题:我有一个 TcpClients 列表,当其中一个断开连接时需要通知我。当他们每个人都被初始化时,我将他们的套接字设置为keepalive(setsocketoption和iocontrol)并且它似乎没有任何问题(没有例外)。
比我有一个单独的线程来检查每个 TcpClient 其 Socket 的 Connected 属性。问题是即使 ip 不再连接(例如我断开网络电缆),布尔值仍然为真(已连接)。我尝试将代码更改为 (socket.available == true) && socket.poll(1, socketMode.selectread) 而没有任何更改。
一个非常重要的说明:相同的代码适用于 win Xp(没有连接时 Connected 属性为 false),但不适用于 win7 并且没有例外。
我以管理员身份运行该程序,并禁用了防火墙。
先感谢您。