Sockets UdpClient可以充当服务器吗?

Sockets UdpClient可以充当服务器吗?,sockets,vb.net-2010,udpclient,Sockets,Vb.net 2010,Udpclient,我花了大约两周的时间尝试了很多不同的代码,但没有一个像我所期望的那样有效 我只需要在定义的端口上接收数据包,并将该数据包应答到远程IP的源端口 即。 我正在侦听端口8090并从远程端口6508(sourceport)接收一个数据包。我需要在不停止侦听另一个远程主机的另一个传入数据的情况下,将应答从8090(本地传出端口)传递到6508(远程传入端口) 问题是,使用UDPClient时,我不能使用与侦听答案相同的端口 我得到的最佳方法是只接收一个远程主机(第一个)的应答 所以我想知道是否可以使用同

我花了大约两周的时间尝试了很多不同的代码,但没有一个像我所期望的那样有效

我只需要在定义的端口上接收数据包,并将该数据包应答到远程IP的源端口

即。 我正在侦听端口8090并从远程端口6508(sourceport)接收一个数据包。我需要在不停止侦听另一个远程主机的另一个传入数据的情况下,将应答从8090(本地传出端口)传递到6508(远程传入端口)

问题是,使用UDPClient时,我不能使用与侦听答案相同的端口

我得到的最佳方法是只接收一个远程主机(第一个)的应答

所以我想知道是否可以使用同一个UDPClient来应答来自不同远程主机的接收

我对这件事感到有点沮丧

你能指引我吗


新信息 我运行了一些测试,接收线程工作正常,从任何远程主机接收数据,直到发送以下代码的应答

Private Sub UdpSend(ByVal txtMessage As String)
    Dim pRet As Integer
    GLOIP = IPAddress.Parse(IpRemotaLbl.Text)
    GLOINTPORT = PuertoEscuchaLbl.Text
    MyUdpClient.Connect(GLOIP, DstPort) 'Can be here the error?
    bytCommand = Encoding.ASCII.GetBytes(txtMessage)
    pRet = MyUdpClient.Send(bytCommand, bytCommand.Length)

    PrintLog("No of bytes send " & pRet)
End Sub

当它连接到远程主机时,似乎会停止侦听任何其他远程主机。

解决方案多亏了@LokiSinclair

Private Sub UdpSend(ByVal txtMessage As String)
    Dim pRet As Integer
    GLOIP = IPAddress.Parse(IpRemotaLbl.Text)

    Using UdpSender As New System.Net.Sockets.UdpClient()
        Dim RemoteEndPoint = New System.Net.IPEndPoint(0, 8090)
        UdpSender.ExclusiveAddressUse = False
        UdpSender.Client.SetSocketOption(Net.Sockets.SocketOptionLevel.Socket, Net.Sockets.SocketOptionName.ReuseAddress, True)
        UdpSender.Client.Bind(RemoteEndPoint)
        UdpSender.Connect(GLOIP, DstPort) 'GLOIP Null?
        bytCommand = Encoding.ASCII.GetBytes(txtMessage)
        pRet = UdpSender.Send(bytCommand, bytCommand.Length)
    End Using

    PrintLog("No of bytes send " & pRet)
End Sub