【问题标题】:How to answer vb.net TCP client using netcat?如何使用 netcat 回答 vb.net TCP 客户端?
【发布时间】:2017-12-14 09:08:24
【问题描述】:

实际上,我使用 vb.net 作为客户端,使用 netcat 作为服务器,在 windows-clients 和 linux 服务器之间创建连接。 问题是我无法使用client_receive() 接收任何内容,因为我无法在打开的 netcat 套接字连接内将数据从服务器发送回客户端。此外,我正在寻找一种不直接响应客户的方法 - 与时间无关。连接需要保持打开状态,服务器可以使用例如echo '$message' > /dev/tcp/client.ip/4000screen 结合使用。重要的是它必须是相同的连接,不是新的。

使用以下代码,我可以将字符串发送到 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:详细说明问题

【问题讨论】:

    标签: vb.net sockets tcp netcat


    【解决方案1】:

    试试这个:

    while true ; do nc -l -p 4000 -c 'echo -e "message received"'; done
    

    使用socat,你可以创建一个简单的回显服务器:

    socat -v tcp-l:4000,fork exec:'/bin/cat'
    

    或者,如果您没有 -c 参数:

    mkfifo fifo
    cat fifo  | nc -k -l 4000 -v | cat  > fifo
    

    【讨论】:

    • while true; do echo -e "ur welcome!\n" | nc -k -l -p 4000 done。抱歉我之前忘记添加keepalive了。
    • 试过while true; do echo -e "ur welcome!\n" | nc -k -l -p 4000; done。文本框出现了两次,但第二次是空的,最后GUI冻结,netcat会话共获得3次ItzMe
    • 另外,我正在寻找一种不直接响应客户的方法——而不是与时间无关。连接需要保持打开状态,服务器可以使用例如screen。希望你明白:)
    • - 更新了问题以进一步解释目标是什么。
    • 我已经使用 socat 或 nc 合并了一个 echo 服务器解决方案。
    猜你喜欢
    • 2012-05-30
    • 1970-01-01
    • 2018-12-30
    • 2012-05-04
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多