【发布时间】:2017-12-14 09:08:24
【问题描述】:
实际上,我使用 vb.net 作为客户端,使用 netcat 作为服务器,在 windows-clients 和 linux 服务器之间创建连接。
问题是我无法使用client_receive() 接收任何内容,因为我无法在打开的 netcat 套接字连接内将数据从服务器发送回客户端。此外,我正在寻找一种不直接响应客户的方法 - 与时间无关。连接需要保持打开状态,服务器可以使用例如echo '$message' > /dev/tcp/client.ip/4000 与 screen 结合使用。重要的是它必须是相同的连接,不是新的。
使用以下代码,我可以将字符串发送到 netcat 正在侦听的端口:
Dim stream As NetworkStream
Dim streamw As StreamWriter
Dim streamr As StreamReader
Dim myclient As New TcpClient
Dim IP As String = "example.com"
Dim Port As Integer = 4000
Public Sub client_send(ByVal text As String)
streamw.WriteLine(text)
streamw.Flush()
End Sub
Public Function client_receive() As String
client_receive = streamr.ReadLine
End Function
Private Sub Welcome_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
myclient.Connect(IP, Port)
stream = myclient.GetStream
streamw = New StreamWriter(stream)
streamr = New StreamReader(stream)
Catch
End Try
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles iamonline.Tick
client_send("ItzMe")
MessageBox.Show(client_receive)
End Sub
我们每 5 秒发送一次ItzMe 到端口 4000/tcp。
在 netcat 屏幕中我们看到:
ItzMe
ItzMe
...
更新 #1:更改 Timer1
更新 #2:详细说明问题
【问题讨论】: