2013-09-23 264 views
0

我希望将消息发送到多台计算机(LAN网络)。套接字多连接VB.NET

实验室中的每台计算机都运行服务器,但一台计算机是客户端。

问题:一旦消息已发送到第一台计算机,客户端停止发送到其他计算机。

客户端:

Dim ip As String 
Dim i As Integer 
Dim serverStream As NetworkStream 
Dim outStream As Byte() 

Dim counter As Integer = 0 
For i = 0 To 100 

Try 
ip = txtRange.Text & i 

clientSocket.Connect(ip, 8888) 

If clientSocket.Connected = True Then 

serverStream = clientSocket.GetStream() 
outStream = System.Text.Encoding.ASCII.GetBytes("Message from the client$") 
serverStream.Write(outStream, 0, outStream.Length) 
serverStream.Flush() 

End If 

Catch ex As Exception 
End Try 
Next 

服务器:

Dim serverSocket As New TcpListener(8888) 
Dim requestCount As Integer 
Dim clientSocket As TcpClient 
serverSocket.Start() 
clientSocket = serverSocket.AcceptTcpClient() 

While (true) 

Dim networkStream As NetworkStream = clientSocket.GetStream() 
Dim bytesFrom(10024) As Byte 
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) 
Dim dataFromClient As String = System.Text.Encoding.ASCII.GetString(bytesFrom) 
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")) 
MessageBox.Show("Data from client - " + dataFromClient) 
End While 


clientSocket.Close() 
serverSocket.Stop() 

谢谢。

回答

1

客户端连接但从不断开。所以你第二次尝试连接套接字已经连接并抛出异常。这个例外被捕获但被忽略。

  • 断开后使用客户端套接字

    1. 写例外至少System.Diagnostics.Debug看到异常在Visual Studio中运行时并创建一个新:

      所以,你应该改变两件事插座再次连接前