1. 你可以通过UdpClient 的构造函数指定本地Port
2. 如果你不指定本地端口,通过下面方法获取本地端口。
UdpClient udpClient = new UdpClient();
udpClient.Send(new byte[10], 10, "127.0.0.1", 10000);
IPEndPoint ipep= udpClient.Client.LocalEndPoint as IPEndPoint;
if (ipep != null)
{
Console.WriteLine(ipep.Port);
}
udpListener tcpl = new udpListener(5656);
正解。
如果是内网的话,路由的公网端口应该拿不到吧
1.你初始化一个UDP客户端的时候会制定端口,UdpClient udpClient = new UdpClient(11111);
这个端口应该是你知道的。或者你指定的。这样才会在代码里调用。udpClient.Connect("www.contoso.com", 111113);
2.或者约定一个端口的集合。客户端进行遍历测试连接。比如qq。使用的服务器端口可能是5000-5050;qq登陆的时候可以尝试连接可能的端口,做个循环即可。然后连接,判断成功与否。
个人见解,仅供参考~。