2010-07-21 67 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