服务器无法回复客户端的UDP EndPoint

时间:2018-04-23 18:50:09

标签: vb.net sockets udp

我有一个UDP客户端/服务器应用程序,客户端向服务器发送定期消息,服务器回复。除非在客户端运行时重新启动服务器,否则此工作正常。在此之后,客户端消息仍然到达服务器,但客户端没有收到服务器回复。

当服务器收到来自客户端的消息时,它获取其EndPoint并在回复时使用它,因此应该回复正确的IP和UDP端口。

Private Sub ReceiveUDP(ByVal AR As IAsyncResult)
        Dim Sender As EndPoint = CType(New IPEndPoint(IPAddress.Any, 0), EndPoint)
        Dim BytesRead As Integer = UDPSocket.EndReceiveFrom(AR, Sender)
        'Following code snipped
End Sub

服务器响应:

SendUDP(Sender, "CONNECTED")

并调用这些潜艇:

Private Sub SendUDP(ByVal EndPoint As EndPoint, Message As String)
        Dim Data() As Byte = System.Text.Encoding.ASCII.GetBytes(Message)
        UDPSocket.BeginSendTo(Data, 0, Data.Length, SocketFlags.None, EndPoint,
              New AsyncCallback(AddressOf UDPCallback), EndPoint)
End Sub 

Public Sub UDPCallback(ByVal AR As IAsyncResult)
        UDPSocket.EndSend(AR)
End Sub

我没有正确回复EndPoint吗?感谢。

0 个答案:

没有答案