我目前正在使用C#中的一个小聊天工具.
问题是我无法弄清楚如何扫描网络以查找所有计算机上的特定端口.我目前正在使用这种方法
IPGlobalProperties network = IPGlobalProperties.GetIPGlobalProperties();
IEnumerable<IPEndPoint> connections = network.GetActiveTcpListeners()
.Where(x => x.Port == ConstParams.iPort);
Run Code Online (Sandbox Code Playgroud)
ConstParams.iPort
我要扫描的端口在哪里(这里是6910).
问题是返回的值只是本地端口和"0.0.0.0"ip地址...
如何扫描当前网络上的所有开放端口(6910)?
我建议您实现一种基于多播/广播通信的简单发现机制,而不是使用端口扫描.
在启动期间,应用程序应广播/多播其IP /端口信息.所有正在运行的实例都应使用其IP /端口信息响应此消息.这种发现机制易于实现,并且在运行时更快,并且比端口扫描方法更动态.