【发布时间】:2009-05-17 19:01:15
【问题描述】:
我如何确保我的计算机上的特定端口没有被用于我在 C# 中需要的服务以外的任何其他目的??
在我模拟局域网信使的程序中,我在尝试连接到远程主机时遇到连接被拒绝错误。因此我需要以某种方式确保该端口没有被用于任何其他目的。
【问题讨论】:
标签: c# networking port
我如何确保我的计算机上的特定端口没有被用于我在 C# 中需要的服务以外的任何其他目的??
在我模拟局域网信使的程序中,我在尝试连接到远程主机时遇到连接被拒绝错误。因此我需要以某种方式确保该端口没有被用于任何其他目的。
【问题讨论】:
标签: c# networking port
您无法确保这一点。任何程序都可以注册监听任何端口,如果没有其他进程使用它,操作系统将允许它。
您最好的选择是选择一个现在已知可被任何服务使用的端口,并将其用作您的传入端口。 Here 是众所周知的端口列表。
【讨论】:
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监听就可以了?这会阻止其他人做同样的事情。
连接被拒绝听起来更像是防火墙问题。
【讨论】: