将数据从Vb.Net套接字侦听器重新广播到另一个套接字

时间:2016-08-25 09:23:09

标签: vb.net sockets tcp tcpclient

我有一个VB.Net项目工作,连接到远程IP /端口并从中接收连续的数据串。它通过一次接收一个字节并将其组装成字符串直到收到EOL字符来完成此操作,然后它将完成的行写入文件。这是使用后台工作程序运行的,因此它不会阻止我的应用程序的UI。

我希望对其进行扩展,以便在收到EOL字符后立即通过另一个套接字将接收到的数据线推送到远程机器。我已经实现了与我的侦听套接字相同的基本代码来执行此操作并且它可以工作但是在一段随机时间后挂起。

我怀疑在下一行数据发送之前数据发送完成存在问题所以我认为我可能需要使用异步套接字。

这可能是最好的方法吗?如果是这样,它应该在自己的单独后台线程上还是保留在当前后台线程上?

这是我用来建立与我要发送数据的远程服务器的连接的代码:

' Create socket to server process
Dim serverSocket As New System.Net.Sockets.TcpClient()
Dim serverStream As NetworkStream = Nothing

' Declare buffer for messages sent to server
Dim serverBuffer As Byte()

' Connect to remote server
serverSocket.Connect(serverIp, serverPort)
' Tie server stream to socket
serverStream = serverSocket.GetStream()

这就是我实际发送数据线的方式:

' Send line to remote server
serverBuffer = System.Text.Encoding.ASCII.GetBytes(line)
serverStream.Write(serverBuffer, 0, serverBuffer.Length)

这一切似乎都有意义,但谷歌搜索表明我应该使用.BeginWrite方法,但这需要定义回调,我不知道他们将服务的目的。

0 个答案:

没有答案