|
本帖最后由 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 [Byte]()
- 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
复制代码
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|