2010-07-21 17 views
7

Quería enviar UdpPacket a un host remoto específico (ya conozco la IP pública y el puerto). Quería usar la clase UdPClient de C#.¿Cómo especificar el puerto de origen de un UdpPacket?

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

Al enviar un paquete, UdpClient elige un puerto disponible automáticamente. Quiero configurar manualmente el puerto desde el que envío los paquetes.

Gracias por su ayuda con anticipación!

Respuesta

10

intente especificar el punto final cuando se crea la UdpClient: editar

UdpClient client = new UdpClient(localEndpoint); 

: Tenga en cuenta que también se puede especificar sólo el número de puerto:

UdpClient client = new UdpClient(localPort); 

Eso puede ser algo más sencillo :)

+0

¡Guau, gracias! ¡Funciona! Pensé que este constructor solo se puede usar si quieres recibir mensajes. UdpClient = new UdpClient (nuevo IPEndPoint (IPAddress.Parse ("0.0.0.0"), 9999)); funcionó – raisyn

+0

@youllknow: era un poco una conjetura, sin duda :) Acabo de editar mi respuesta con una forma posiblemente más simple de hacerlo también. Vale la pena intentarlo ... –

+0

hm .. ¿Hay alguna manera de cambiar srcPort no solo a través de un constructor? – kchoi

Cuestiones relacionadas