以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  狐表怎么用TCP连接设备,输出设备的信息  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193008)

--  作者:zhenghangbo
--  发布时间:2024/8/9 9:44:00
--  狐表怎么用TCP连接设备,输出设备的信息
设备ip地址xxx.xxx.xxx.xxx,端口:12345。代码案例如下:
Imports System.Net.Sockets
Imports System.Text

Public Class TCPClientExample
    Private client As TcpClient
    Private stream As NetworkStream

    Public Sub New()
        client = New TcpClient()
        stream = Nothing
    End Sub

    Public Sub Connect(host As String, port As Integer)
        Try
            client.Connect(host, port)
            stream = client.GetStream()
            Console.WriteLine("Connected to server.")
            ReceiveData() \' 开始接收数据
        Catch ex As Exception
            Console.WriteLine("Connection failed: " & ex.Message)
        End Try
    End Sub

    Private Async Sub ReceiveData()
        Dim buffer(1024) As Byte
        Dim received As Integer

        While True
            Try
                received = Await stream.ReadAsync(buffer, 0, buffer.Length)
                Dim data As String = Encoding.UTF8.GetString(buffer, 0, received)
                Console.WriteLine("Received from server: " & data)
            Catch ex As Exception
                Console.WriteLine("Receive failed: " & ex.Message)
                Exit While
            End Try
        End While
    End Sub

    Public Sub SendData(message As String)
        If stream IsNot Nothing Then
            Dim data As Byte() = Encoding.UTF8.GetBytes(message)
            Try
                stream.Write(data, 0, data.Length)
                Console.WriteLine("Sent to server: " & message)
            Catch ex As Exception
                Console.WriteLine("Send failed: " & ex.Message)
            End Try
        Else
            Console.WriteLine("Not connected to server.")
        End If
    End Sub

    Public Sub Disconnect()
        If stream IsNot Nothing Then
            stream.Close()
        End If
        If client IsNot Nothing Then
            client.Close()
        End If
    End Sub
End Class

Module Program
    Sub Main(args As String())
        Dim client As New TCPClientExample()

        client.Connect("localhost", 12345) \' 请替换为实际的服务端地址和端口号

        Console.WriteLine("Press Enter to send a message...")
        While Not Console.KeyAvailable
            If Console.KeyAvailable Then
                Dim input As String = Console.ReadLine()
                client.SendData(input)
            End If
        End While

        client.Disconnect()
        Console.WriteLine("Disconnected.")
        Console.ReadKey()
    End Sub
End Module


--  作者:有点蓝
--  发布时间:2024/8/9 9:49:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100826&skin=0