另起一个线程,在里面循环receive,每收到一个数据就进行分析,特殊命令如exit,执行udpclient.close(),其他数据委托到主线程.
给你个udp多播例子,广播不是很清楚,呵呵
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Inherits System.Windows.Forms.Form
Dim port As String
Dim ipadd As String
Dim ipend As IPEndPoint
Dim sendudp As New UdpClient()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim ipadress As IPAddress
ipadress = IPAddress.Parse(TextBox1.Text)
'ipend = New IPEndPoint(ipadress, sendport)
Try
sendudp.JoinMulticastGroup(ipadress)
MessageBox.Show("启动完成!")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
网上很多相关的现成的代码
你需要知道的一点是数据接收不是接收一次就完了 接收端根本不知道数据什么时候要过来 所以数据端应该一直重复着"等待-接收"的过程 于是就有了要在线程中接收数据的代码
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim udpClient As New UdpClient(11000)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(RichTextBox1.Text)
udpClient.Send(sendBytes, sendBytes.Length)
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)
Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
'Debug.Print(("This message was sent from " ◆ RemoteIpEndPoint.Address.ToString() ◆ " on their port number " ◆ RemoteIpEndPoint.Port.ToString()))
udpClient.Close()
stop
End Class
服务器先进行
Bind ()绑定服务器的端口
SendTo()来发送数据就可以
不需要进行BeginConnect,因为UDP不需要连接
以上就是土嘎嘎小编为大家整理的vb.netudp编程相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!