【发布时间】:2020-08-11 20:52:43
【问题描述】:
我正在使用 TcpListener 类在我的机器上的某个 IP 和端口上创建一个 TCP 套接字。我使用的代码如下:
tcpListener = new TcpListener("192.168.0.110", 8005);
try
{
tcpListener.Start();
}
catch (Exception e)
{
Console.WriteLine(e);
return;
}
这很好用。我想用一个检查线程来检查监听器的状态。
private void CheckConnections()
{
while (true)
{
if (_tcpListener.Server.IsBound)
{
Console.WriteLine(_tcpListener.Active);
Console.WriteLine("IsBound : True");
}
else
{
Console.WriteLine(_tcpListener.Active);
Console.WriteLine("IsBound : False");
}
Thread.Sleep(2000);
}
}
当我从适配器设置手动更改我的机器的 IP 时,例如从“192.168.0.110”到“192.168.0.105”,在“netstat -ano”命令中,我仍然看到“192.168.0.110:8005 "处于监听状态。我也找不到从我的代码中订阅此更改的方法。所以我的问题是如何处理服务器端套接字上的 IP 更改?有没有办法从套接字本身获取 IP 更改信息?
【问题讨论】: