[英]UdpClient can't receive after connect
我正在使用此代碼來偵聽端口9999 udp。
Dim remoteSender As New IPEndPoint(IPAddress.Any, 0)
client = New UdpClient(9999)
Dim state As New UdpState(client, remoteSender)
client.BeginReceive(New AsyncCallback(AddressOf DataReceived), state)
它工作得很好,如果我發送一條udp消息到127.0.0.1:9999,我收到了在子DataReceived()上觸發的事件。
但是,因為我想創建一個連接到udp服務器並等待服務器響應的程序。 所以我在創建套接字后插入了一個connect命令。
Dim remoteSender As New IPEndPoint(IPAddress.Any, 0)
client = New UdpClient(9999)
client.Connect("127.0.0.1", 1000)
Dim state As New UdpState(client, remoteSender)
client.BeginReceive(New AsyncCallback(AddressOf DataReceived), state)
但是當服務器將數據包發送回127.0.0.1:9999時,我無法從服務器收到任何響應,事件不像第一個代碼那樣被觸發。
那我的代碼有什么問題? 我知道C#和Vb.net,所以兩種語言的答案都很好。
http://msdn.microsoft.com/en-us/library/c4w4cta7(v=vs.110).aspx :
如果調用Connect方法,則將丟棄從指定默認地址以外的地址到達的任何數據報。
您希望收到的數據報來自不同的地址。 也許發件人使用LAN或WAN IP地址而不是環回( 127.0.0.1
)地址。
如果您不需要 Connect
呼叫,只需將其刪除即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.