我如何确保我的计算机上的特定端口没有被用于我在 C# 中需要的服务以外的任何其他目的?
在我模拟局域网信使的程序中,我在尝试连接到远程主机时遇到连接被拒绝错误。因此我需要以某种方式确保该端口没有被用于任何其他目的。
我如何确保我的计算机上的特定端口没有被用于我在 C# 中需要的服务以外的任何其他目的?
在我模拟局域网信使的程序中,我在尝试连接到远程主机时遇到连接被拒绝错误。因此我需要以某种方式确保该端口没有被用于任何其他目的。
你不能确保这一点。任何程序都可以注册以侦听任何端口,如果没有其他进程正在使用它,操作系统将允许它。
您最好的选择是选择一个现在已知可被任何服务使用的端口,并将其用作您的传入端口。这是一个众所周知的端口列表。
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
server = new TcpListener(localAddr, 0);
这将为您提供本地机器上的第一个可用端口。
http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx
打开一个tcp-socket监听就可以了?这会阻止其他任何人做同样的事情。
拒绝连接听起来更像是防火墙问题。