views:

41

answers:

1

Hi everybody!

I wanted to send UdpPacket to a specific remote host (I already know the public IP and Port). I wanted to use C#'s UdpClient class.

static int Main()
{
     UdpClient client = new UdpClient();
     IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("1.2.3.4"), 9999);

     byte[] data = GetData();
     client.Send(data, data.Length, remoteEP);
}

When sending a packet, the UdpClient choose an available port automatically. I want to manually set the port, from which I send the packets.

Thanks for your help in advance!

+1  A: 

Try specifying the endpoint when you create the UdpClient:

UdpClient client = new UdpClient(localEndpoint);

EDIT: Note that you can also specify just the port number:

UdpClient client = new UdpClient(localPort);

That may be somewhat simpler :)

Jon Skeet
Wow thanks!!! It works! I thought this constructor can only be used if you want to receive messages. UdpClient = new UdpClient(new IPEndPoint(IPAddress.Parse("0.0.0.0"), 9999)); worked
youllknow
@youllknow: It was a bit of a guess, admittedly :) I've just edited my answer with a possibly simpler way of doing it, too. Worth a try...
Jon Skeet