Vb.net 可以响应UDP连接吗?
我收到许多来自无IP有效设备的UDP连接,代码如下:Vb.net 可以响应UDP连接吗?,vb.net,sockets,udp,Vb.net,Sockets,Udp,我收到许多来自无IP有效设备的UDP连接,代码如下: receivingUdpClient = New System.Net.Sockets.UdpClient(Port) Dim byteBuffer As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint) 现在,我希望在接收数据后将响应数据发送到设备 我使用这个代码 receivingUdpClient.Send(receiveBytes, 10) Buy收到此错误: “不允许
receivingUdpClient = New System.Net.Sockets.UdpClient(Port)
Dim byteBuffer As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint)
现在,我希望在接收数据后将响应数据发送到设备
我使用这个代码
receivingUdpClient.Send(receiveBytes, 10)
Buy收到此错误:
“不允许在未连接的套接字上执行此操作。”通常,您需要使用SendTo和ReceiveFrom方法,而不是使用UDP套接字发送和接收。这样,您就可以获得发送方的IP:port(端点)——这样您就可以将响应发送回同一地址。我的VB很弱,所以我将用C#给出一个简单的例子
在代码中,
RemoteIpEndPoint
捕获从中接收数据的地址。要将数据发送回该主机,您需要将该地址(端点)传递给调用send
他正在使用UdpClient,因此没有SendTo或ReceiveFrom。在这种情况下,他应该在进行第一次发送之前调用“Connect”方法。是的,或者他需要在要发送的调用中指定远程端点。
byte [] buffer = new byte[1500];
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint senderRemote = (EndPoint)sender;
EndPoint senderRemote;
int bytesReceived = socket.recvFrom(buffer, senderRemote);
// echo the message back to the sender
if (bytesReceived > 0)
socket.sendTo(buffer, bytesReceived, senderRemote);