首页 新闻 会员 周边 捐助

udp有机开端口的问题

0
悬赏园豆:50 [已解决问题] 解决于 2009-06-02 15:44

园子里..从来不缺高人..

UDPClient.Send(msg, msg.Length, endPoint);

当这条语句执行的时候...客户端会向指定的服务器将消息发出去.

并且在客户机上随机开端口与服务器链接

服务很容易获取到客户机开的端口...

我想问的是..客户机怎么如何获取这个端口?

问题补充: 如果在客户端指定端口的话...我就不用去获取啦. 如果指定客户端口..客户机就不能同时.运行两个实例.
WAS的主页 WAS | 初学一级 | 园豆:5
提问于:2009-05-26 22:55
< >
分享
最佳答案
0

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);
            }

eaglet | 专家六级 |园豆:17139 | 2009-05-27 08:06
其他回答(3)
0

udpListener tcpl = new udpListener(5656);

正解。

邢少 | 园豆:10926 (专家六级) | 2009-05-27 10:05
0

如果是内网的话,路由的公网端口应该拿不到吧

风海迷沙 | 园豆:4453 (老鸟四级) | 2009-05-27 10:57
0

1.你初始化一个UDP客户端的时候会制定端口,UdpClient udpClient = new UdpClient(11111);
这个端口应该是你知道的。或者你指定的。这样才会在代码里调用。udpClient.Connect("www.contoso.com", 111113);

2.或者约定一个端口的集合。客户端进行遍历测试连接。比如qq。使用的服务器端口可能是5000-5050;qq登陆的时候可以尝试连接可能的端口,做个循环即可。然后连接,判断成功与否。

  个人见解,仅供参考~。

Frank Xu Lei | 园豆:1860 (小虾三级) | 2009-05-27 15:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册