VB.NET 2008 UDP 收发 简例
本帖最后由 90999 于 2016-9-18 20:11 编辑网上VB.NET 的UDP 收发写得神烦神烦的,自己搞个。
Imports System.Net
Imports System.Text
Public Class Form1
Dim ws3 As New Net.Sockets.UdpClient ‘此处可以不设定端口 WS3只作为SEND 口使用
Dim ws4 As New Net.Sockets.UdpClient(19730) '本地接收端口 WS4只作为GET口使用
Private Sub Form1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Leave
ws3.Close()
ws4.Close()
tck.Stop()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ws3.Connect("255.255.255.255", 5678) '指定发送目标IP及端口255.255.255.255 是广播用IP
tck.Interval = 10 '刷新接收口速度 10ms收一次
tck.Start()
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click '发送
Dim aa As ()
aa = Encoding.ASCII.GetBytes(DateAndTime.Now.Second * 1000 + DateAndTime.Now.Millisecond)
ws3.Send(aa, aa.Length)
' T1.Text = ""
End Sub
’在FORM1里放置一个名为TCK的TIMER控件,周期性读取数据,也可以必须单独新开一个线程。
Private Sub tck_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tck.Tick'接收
Dim aa As String
Dim ip As New IPEndPoint(IPAddress.Any, 0)'指定监听目标IP
If ws4.Available Then ‘收到数据包长度大于0
While ws4.Available '把库存取干净
aa = Encoding.ASCII.GetString(ws4.Receive(ip)) ' 一次只取1组包
T1.Text = T1.Text & " 内容 " & aa & " 长度 " & aa.Length & vbCrLf ’文本框内容
End While
End If
End Sub
End Class
楼主好人{:handshake:} 已收藏,非常感谢!
页:
[1]