我正在制作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
我希望服务器将消息发送到客户端。但这似乎不起作用:/