VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • 使用VB.net实现简单的聊天程序(socket服务端和客户端)

socket通讯是最常用的通讯协议,以服务器和客户端的形式体现,在VB.net中,也可以实现。
废话不多说,请看实例:
在visual studio2019中新建两个窗体项目,分别命名为server和client。
 
server窗体代码:
 
 
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
 
 
 
 
 
Public Class Form1
 
    Dim ip As IPAddress
    Dim port As Integer
    Dim ipe As IPEndPoint
    Dim s As Socket
    Dim svr As Socket
 
    Delegate Sub sockivo(dt As String)
 
    Dim data1 As String
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ip = IPAddress.Parse("127.0.0.1")
        port = 2000
        ipe = New IPEndPoint(ip, port)
        s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        s.Bind(ipe)
        s.Listen(10)
        svr = s.Accept()
 
        Console.WriteLine("client:" & svr.RemoteEndPoint.ToString())
 
        Dim th1 As New Thread(AddressOf sockrec)
        th1.Start()
 
 
 
    End Sub
 
    Private Sub sockrec()
 
 
        While True
 
            Dim recbyte(1024) As Byte
 
            svr.Receive(recbyte)
 
 
            data1 = Encoding.GetEncoding("gb2312").GetString(recbyte)
 
            Dim sockivo1 As New sockivo(AddressOf sockrecdata)
 
            Me.Invoke(sockivo1, data1)
 
        End While
 
 
 
 
 
 
    End Sub
 
    Private Sub sockrecdata(dt As String)
 
        ListView1.Items.Add("clientA:" + dt + vbCrLf, 1)
 
 
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
 
        Dim sendbyt(1024) As Byte
 
        sendbyt = Encoding.GetEncoding("gb2312").GetBytes(TextBox1.Text)
 
 
 
        svr.Send(sendbyt)
 
        ListView1.Items.Add("me:" + TextBox1.Text + vbCrLf, 0)
 
        TextBox1.Clear()
 
 
 
    End Sub
End Class
 
 
client窗体代码:
 
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
 
 
 
 
 
Public Class Form1
 
    Dim ip As IPAddress
    Dim port As Integer
    Dim ipe As IPEndPoint
    Dim s As Socket
 
    Delegate Sub sockivo(dt As String)
 
    Dim data1 As String
 
 
 
 
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        ip = IPAddress.Parse("127.0.0.1")
        port = 2000
        ipe = New IPEndPoint(ip, port)
        s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 
        s.Connect(ipe)
 
        Dim th1 As New Thread(AddressOf sockrec)
        th1.Start()
 
    End Sub
 
 
    Private Sub sockrec()
 
 
        While True
 
 
            Dim recbyt(1024) As Byte
            s.Receive(recbyt)
            data1 = Encoding.GetEncoding("gb2312").GetString(recbyt)
            Dim sockivo1 As New sockivo(AddressOf sockrecdata)
 
            Me.Invoke(sockivo1, data1)
 
 
        End While
 
 
 
 
 
    End Sub
    Private Sub sockrecdata(dt As String)
 
 
 
        ListView1.Items.Add("server:" + dt + vbCrLf, 0)
 
 
 
 
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
        Dim sendbyt(1024) As Byte
 
        sendbyt = Encoding.GetEncoding("gb2312").GetBytes(TextBox1.Text)
 
        s.Send(sendbyt)
 
        ListView1.Items.Add("me:" + TextBox1.Text + vbCrLf, 1)
 
        TextBox1.Clear()
 
 
    End Sub
End Class
 
测试效果图:

 
源程序超链接:
https://download.csdn.net/download/normer123456/21733993
————————————————
版权声明:本文为CSDN博主「机构师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/normer123456/article/details/118513737

相关教程