套接字错误 0x80004005:无法立即完成非阻塞套接字操作在 vb.net 中编程时

问题描述

我正在尝试使用以太网有线连接与 Arduino 通信。我使用 python 和 C 做到了这一点,但现在我很难用 VB.net 做同样的事情。只是我试图使用其 IP 地址和端口号向 Arduino 发送一个 UDP 数据包,并希望返回响应并将其显示在文本框中。

Imports System.Net
Imports System.Environment,System.Text.Encoding


Public Class udpWindow
 Dim localIP As String = Dns.GetHostByName(Dns.GetHostName()).AddressList(0).ToString
 Dim localPort As Integer = 5000

 Dim publisher As New Sockets.UdpClient(0)
 Dim subscriber As New Sockets.UdpClient(localPort)

 Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
    LocalIP_txt.Text = localIP
    localPort_txt.Text = localPort

 End Sub


 Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Start.Click
    publisher.Connect(ServerIP.Text,ServerPort.Text)
    Dim sendbytes() As Byte = ASCII.GetBytes("0")
    publisher.Send(sendbytes,sendbytes.Length)

 End Sub

 Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.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(0,localPort)
        Dim recvbytes() As Byte = subscriber.Receive(ep)
        'MsgBox("msg recieved")
        rcvMsgs.Text = ASCII.GetString(recvbytes)
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try

 End Sub
End Class

谁能帮我提供更好的选择或更正? 提前谢谢,因为这是我在这里的第一次查询,所以请原谅任何不当错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)