首页 文章

如何知道c#UdpClient使用的端口号? [重复]

提问于
浏览
6

这个问题在这里已有答案:

我正在使用c sharp创建一个客户端服务器应用程序 . 服务器正在使用带有固定端口号的tcplistener . 客户端使用tcpclient连接到服务器 . 连接后,客户端和服务器都使用此连接进行通信 . 然后,应用程序创建新的udp连接以发送和接收消息 . 由于服务器假设从单个客户端接受多个连接,我必须区分每个连接与不同的端口 . 为了做到这一点,我必须先在服务器上创建一个udpclient(在服务器上自动使用未使用的udp端口) . 2.将服务器udpclient使用的端口号发送给客户端 . 3.客户端使用指定的端口号将数据发送到服务器 .

问题是,如何创建一个udpclient,你可以知道使用的端口号?

3 回答

  • 0

    以下是我的问题的答案 .

    UdpClient udpClient = new UdpClient(0));
    Console.WriteLine("UDP port : " + ((IPEndPoint)udpClient.Client.LocalEndPoint).Port.ToString());
    

    0作为构造函数参数设置应用程序自动查找免费的udp端口 . ((IPEndPoint)udpClient.Client.LocalEndPoint)).Port.ToString() 用于查找端口号 .

  • 13

    我相信您可以使用Socket.RemoteEndPoint属性来了解连接到服务器的客户端的IP /端口是什么(您知道本地IP /端口,因为您在该端口上启动了套接字,但它也可以通过LocalEndPoint属性获得 .

    另请参阅MSDN UdpClient以获取有关如何正确使用UdpClient的简单示例 .

  • 2

    我认为你不能在服务器端使用UdpClient来实现你的目标,因为它没有绑定到IPEndPoint的Bind方法 .

    您应该使用Socket对象来执行此操作,这允许监视端口以获取传入的UDP消息 . 毫无疑问,您可以告诉客户端服务器监视哪个端口 .

相关问题