VB.NET SocketUDP简单组网聊天范例

可以有多个客户端申请,符合接头暗号的才能进入通讯列表,不是阿猫阿狗随便都可以连接进来的。

定时检查客户还在不在,如果超时,则从列表中除去,避免没完没了给他们发信息。

模拟实验 使用场景 :多个客户端申请UDP连接, 服务器把自己的数据,比如压力,温度等群发送给所有的客户端(比如工程师站,现场监控屏幕等),无需进来TCP连接。

 

 form

Imports System.Net
Imports System.Text

Public Class Form1

    Private WithEvents UDP组网 As New ClsUDP组网
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        UDP组网.Connect("thisIsGroup", TxtMyPort.Text, 6)
    End Sub
#Region "list显示"
    Delegate Sub deltListBoxShow(ipEndPoint As IPEndPoint, ClientCount As Integer)
    Private lstBoxShow = New deltListBoxShow(AddressOf subDeltListBoxShow)
    Public Sub subDeltListBoxShow(ipEndPoint As IPEndPoint, ClientCount As Integer)
        ListBox1.Items.Clear()
        For Each 客户端 As ClsUDP组网.Cls客户端 In UDP组网.lst客户端
            Dim str客户 As String = 客户端.ip + ":" + 客户端.port
            ListBox1.Items.Add(str客户)
        Next
        ListBox1.BackColor = IIf(ClientCount > 0, Color.White, Color.Gray)
        ListBox1.Refresh()
    End Sub
    Private Sub UDP组网_有客户(ipEndPoint As IPEndPoint, ClientCount As Integer) Handles UDP组网.有客户
        Me.Invoke(lstBoxShow, ipEndPoint, ClientCount)
    End Sub
    Private Sub UDP组网_送客(ipEndPoint As IPEndPoint, ClientCount As Integer) Handles UDP组网.送客
        Me.Invoke(lstBoxShow, ipEndPoint, ClientCount)
    End Sub
#End Region

#Region "数据显示"
    Private Sub UDP组网_来有效数据啦(data() As Byte, ipEndPoint As IPEndPoint) Handles UDP组网.来有效数据啦
        Me.Invoke(DataShow, data, ipEndPoint)
    End Sub
    Delegate Sub dletDataShow(data() As Byte, ipEndPoint As IPEndPoint)
    Private DataShow As New dletDataShow(AddressOf subDataShow)
    Private Sub subDataShow(data() As Byte, ipEndPoint As IPEndPoint)
        Dim ip As String = CType(ipEndPoint, IPEndPoint).Address.ToString '从哪里来 获取对方ip
        Dim port = CType(ipEndPoint, IPEndPoint).Port.ToString '获取远程的port
        LabRec.Text += ip + ":" + port + " -> " + Encoding.GetEncoding("gb2312").GetString(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值