Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 可以响应UDP连接吗?_Vb.net_Sockets_Udp - Fatal编程技术网

Vb.net 可以响应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收到此错误: “不允许

我收到许多来自无IP有效设备的UDP连接,代码如下:

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);