您的位置:首页 > 编程语言 > VB

VB.NET Socket 入门(尚未整理完...)

2011-04-12 19:45 337 查看
服务端:

Dim address As IPAddress = IPAddress.Parse("192.168.1.5")
serverSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
serverSocket.Bind(ipep)
serverSocket.Listen(10)

While True
Try
'在套接字上接收接入的连接
clientSocket = serverSocket.Accept()
clientThread = New Thread(New ThreadStart(AddressOf ReceiveData))
clientThread.Start()
Catch ex As Exception
MessageBox.Show("listening Error: " & ex.Message)
End Try
End While

Private Sub ReceiveData()
Dim keepalive As Boolean = True
Dim s As Socket = clientSocket
Dim buffer As [Byte]() = New [Byte](1023) {}

'根据收听到的客户端套接字向客户端发送信息
Dim clientep As IPEndPoint = DirectCast(s.RemoteEndPoint, IPEndPoint)
lstServer.Items.Add("Client:" & Convert.ToString(clientep.Address) & "(" & clientep.Port & ")")
Dim welcome As String = "Welcome to my test sever "
Dim data As Byte() = New Byte(1023) {}
data = Encoding.ASCII.GetBytes(welcome)
s.Send(data, data.Length, SocketFlags.None)

While keepalive
'在套接字上接收客户端发送的信息
Dim bufLen As Integer = 0
Try
bufLen = s.Available

s.Receive(buffer, 0, bufLen, SocketFlags.None)
If bufLen = 0 Then
Continue Try
End If
Catch ex As Exception
MessageBox.Show("Receive Error:" & ex.Message)
Return
End Try
clientep = DirectCast(s.RemoteEndPoint, IPEndPoint)
Dim clientcommand As String = System.Text.Encoding.ASCII.GetString(buffer).Substring(0, bufLen)

lstServer.Items.Add(clientcommand & "(" & Convert.ToString(clientep.Address) & ":" & clientep.Port & ")")
End While
End Sub


客户端:

'创建一个套接字
Dim ipep As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 6001)
clientSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

'将套接字与远程服务器地址相连
Try
clientSocket.Connect(ipep)
Catch ex As SocketException
MessageBox.Show("connect error: " + ex.Message)
Return
End Try

While True
'接收服务器信息
Dim bufLen As Integer = 0
Try
bufLen = clientSocket.Available

clientSocket.Receive(data, 0, bufLen, SocketFlags.None)
If bufLen = 0 Then
Continue Try
End If
Catch ex As Exception
MessageBox.Show("Receive Error:" & ex.Message)
Return
End Try

Dim clientcommand As String = System.Text.Encoding.ASCII.GetString(data).Substring(0, bufLen)

lstClient.Items.Add(clientcommand)
End While

'向服务器发送信息
Dim data As Byte() = New Byte(1023) {}
data = Encoding.ASCII.GetBytes(txtClient.Text)
clientSocket.Send(data, data.Length, SocketFlags.None)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: