gpt4 book ai didi

.net - 使用线程监听 UDP 广播

转载 作者:行者123 更新时间:2023-12-02 20:55:49 25 4
gpt4 key购买 nike

我正在向 ..*.255 广播一条简单的消息(将我的 IP 的最后部分更改为 255),并且我正在尝试收听它。代码没有返回错误,但我没有收到任何内容。在wireshark中,我可以看到广播已正确发送,但每次使用不同的端口(我不知道这是否有什么大不了的)。这是我的代码的一些部分。

Private Sub connect()
setip()
btnsend.Enabled = True
btndisconnect.Enabled = True
btnconnect.Enabled = False
receive()
txtmsg.Enabled = True
End Sub

Sub receive()
Try
SocketNO = port
rClient = New System.Net.Sockets.UdpClient(SocketNO)
rClient.EnableBroadcast = True
ThreadReceive = _
New System.Threading.Thread(AddressOf receivemessages)
If ThreadReceive.IsAlive = False Then
ThreadReceive.Start()
Else
ThreadReceive.Resume()
End If
Catch ex As Exception
MsgBox("Error")
End Try
End Sub

Sub receivemessages()
Dim receiveBytes As Byte() = rClient.Receive(rip)
Dim BitDet As BitArray
BitDet = New BitArray(receiveBytes)
Dim strReturnData As String = _
System.Text.Encoding.Unicode.GetString(receiveBytes)
MsgBox(strReturnData.ToString)
End Sub

Private Sub setip()
hostname = System.Net.Dns.GetHostName
myip = IPAddress.Parse(System.Net.Dns.GetHostEntry(hostname).AddressList(1).ToString)
ipsplit = myip.ToString.Split(".".ToCharArray())
ipsplit(3) = 255
broadcastip = IPAddress.Parse(ipsplit(0) & "." & ipsplit(1) & "." + ipsplit(2) + "." + ipsplit(3))
iep = New IPEndPoint(broadcastip, port)

End Sub

Sub sendmsg()
Dim msg As Byte()
MsgBox(myip.ToString)
sclient = New UdpClient
sclient.EnableBroadcast = True
msg = Encoding.ASCII.GetBytes(txtmsg.Text)
sclient.Send(msg, msg.Length, iep)
sclient.Close()
txtmsg.Clear()
End Sub

最佳答案

This article似乎几乎完全符合您想要做的事情,并且通过代码中的大量注释很好地解释了它。

关于.net - 使用线程监听 UDP 广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com