簡體   English   中英

連接后UdpClient無法接收

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM