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