【发布时间】:2013-04-28 08:04:09
【问题描述】:
我有一个奇怪的问题: 我有一个 TcpClients 列表,当其中一个断开连接时需要通知我。 当他们每个人都被初始化时,我将他们的套接字设置为 keepalive(setsocketoption 和 iocontrol),它似乎没有任何问题(没有例外)。
比我有一个单独的线程来检查每个 TcpClient 其 Socket 的 Connected 属性。 问题是,即使 ip 不再连接(例如我断开网络电缆),布尔值仍然为真(已连接)。 我尝试将代码更改为 (socket.available == true) && socket.poll(1, socketMode.selectread) 而不做任何更改。
非常重要的一句话: 完全相同的代码适用于 win Xp(没有连接时 Connected 属性为 false),但不适用于 win7 并且没有异常。
我以管理员身份运行程序并且禁用了防火墙。
提前谢谢你。
【问题讨论】:
标签: c# sockets connection disconnect