2010-07-21 74 views
7

我想将UdpPacket发送到特定的远程主机(我已经知道公共IP和端口)。 我想使用C#的UdpClient类。如何指定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); 
} 

发送数据包时,UdpClient自动选择一个可用端口。我想手动设置端口,从中我发送数据包。

感谢您的帮助提前!

回答

10

尝试指定端点当您创建UdpClient

UdpClient client = new UdpClient(localEndpoint); 

编辑:请注意,您也可以只指定端口号:

UdpClient client = new UdpClient(localPort); 

这可能是有些简单:)

+0

谢谢!有用!我认为这个构造函数只能在你想接收消息的时候使用。 UdpClient = new UdpClient(new IPEndPoint(IPAddress.Parse(“0.0.0.0”),9999));工作 – raisyn 2010-07-21 09:00:02

+0

@ youllknow:这是一个猜测,坦率地说:)我刚刚编辑我的答案,也可能更简单的方法。值得一试... – 2010-07-21 09:14:43

+0

嗯..有没有办法切换srcPort不只是通过构造? – kchoi 2016-06-01 23:02:23