How to know the port number used by c# UdpClient?

12,888

Solution 1

Here are the answer to my questions.

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

0 as the constructor parameter set the app to automatically find free udp port. ((IPEndPoint)udpClient.Client.LocalEndPoint)).Port.ToString() is used to find the port number.

Solution 2

I believe you can use the Socket.RemoteEndPoint property to know what the IP/Port of the client connected to the server is (you know your local IP/port because you started the socket on that port, but it is also available through the LocalEndPoint property.

Also see the MSDN UdpClient for a simple example on how to use the UdpClient properly.

Share:
12,888
Syaiful Nizam Yahya
Author by

Syaiful Nizam Yahya

Updated on July 07, 2022

Comments

  • Syaiful Nizam Yahya
    Syaiful Nizam Yahya almost 2 years

    I am creating a client server application using c sharp. The server is using tcplistener with fixed port number. the client connect to the server using tcpclient. Once connected, both client and server communicate using this connection. The application then create new udp connection to send and receive message. Since the server suppose to accept multiple connection from single client, i have to differentiate each connection with different port. In order to do this, i have to first 1. at server, create a udpclient (automatically use unused udp port at the server). 2. sends the port number used by the server udpclient to the client. 3. the client sends data to the server using specified port number.

    The problem is, how to create a udpclient where you can know the port number used?

  • Jesse Chisholm
    Jesse Chisholm over 9 years
    Sadly, at least in .NET 4.0, the system never sets the Port field of a UDP socket. And since it is a get-only property, you can't manually set it either.
  • Jesse Chisholm
    Jesse Chisholm over 9 years
    OOPS. I should have said: The system does not set the Port on RAW UDP Sockets when you bind. it does on DGRAM Sockets.