如何使用UDP将数据从服务器发送到客户端? (VB.NET)

时间:2019-07-22 03:37:02

标签: vb.net udp

我正在制作UDP聊天程序。我已经知道如何将消息从客户端发送到服务器。但是我不知道如何反向执行(服务器向客户端发送消息)。如何从服务器向客户端发送消息?

我尝试使用“订户” UDP客户端(服务器)上的Send方法从服务器发送到客户端,但是它说:System.Net.Sockets.SocketException:'所请求的地址在其上下文中无效'< / p>

'The code I used to send data from server to client

Dim remoteEP = New IPEndPoint(IPAddress.Any, 0)
Dim sendbytes() As Byte = ASCII.GetBytes("smth")
    subscriber.Send(sendbytes, 1, remoteEP)

    'Here's the whole Server Side
Dim publisher As New Sockets.UdpClient(0)
Dim subscriber As New Sockets.UdpClient(4398)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim remoteEP = New IPEndPoint(IPAddress.Any, 0)
    Dim sendbytes() As Byte = ASCII.GetBytes("smth")
    subscriber.Send(sendbytes, 1, remoteEP)
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    subscriber.Client.ReceiveTimeout = 100
    subscriber.Client.Blocking = False
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Try
        Dim ep As IPEndPoint = New IPEndPoint(IPAddress.Any, 0)
        Dim rcvbytes() As Byte = subscriber.Receive(ep)
        TBRcv.Text = ASCII.GetString(rcvbytes)
    Catch ex As Exception
    End Try
End Sub

'Client Side
Dim publisher As New Sockets.UdpClient(0)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    publisher.Connect(TBTo.Text, TBPort.Text)
    Timer1.Start()
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    Dim sendbytes() As Byte = ASCII.GetBytes(Textbox4.text)
    publisher.Send(sendbytes, sendbytes.Length)
End Sub

我希望服务器将消息发送到客户端。但这似乎不起作用:/

0 个答案:

没有答案