【问题标题】:C# - Send command to Telnet Server (Plain Text)C# - 向 Telnet 服务器发送命令(纯文本)
【发布时间】:2020-12-16 14:18:00
【问题描述】:

我正在尝试连接并向 TCP 服务器发送命令(我认为是 Telnet)。我只知道我需要发送命令来接收数据。

我们的本地网络上已经有一个阅读器,但它很旧,没有我们需要的所有功能。为了监控阅读器,我安装了 Wireshark。它表明发送的命令是纯文本的。而且没有身份验证。

所以我只需要连接,无需身份验证并以纯文本形式发送命令。如何使用 C# 连接到 Telnet 服务器?

Wireshark 打印print

【问题讨论】:

    标签: c# sockets telnet tcpclient


    【解决方案1】:

    这是一个套接字的例子,它是通过 TCP 发送和接收数据的一种方式。 您可以更改地址和端口,并请求文本,它应该已经是一个工作示例。

    Socket Class (System.Net.Socket)

    如果您需要发送的是字节而不是文本,您可以手动填充发送的字节数组,而不是将字符串解码为 Byte[] bytesSent = Encoding.ASCII.GetBytes(request);行中的字节数组

    【讨论】:

    • 我已经尝试过socket和TCPClient。但显然不可能以纯文本形式发送命令。我需要以纯文本形式发送命令..
    • 那正是代码。它的ASCII。将request 的内容替换为您的文本,调整地址和端口,然后运行程序。 Wireshark 应该显示纯文本。
    • No.. Encoding.ASCII 将字符串转换为 ASCII。使用 Wireshark 进行监控会显示 ASCII 码……而不是纯文本。
    • Encoding.ascii 将字符串转换为字节数组。每个 ASCII 字符都由 0 到 255 之间的字节值表示。它相同。32 表示空格等。你确定你正确使用了 wireshark 吗??你可以阅读 telnet rfc,它的 ASCII
    • 嗨迈克尔。我解决了这个问题。 Wireshark 数据是正确的。数据是字符串十六进制。所以我使用这个例子将我的字符串十六进制转换为字节数组:stackoverflow.com/questions/321370/…
    【解决方案2】:

    老实说,您不能发送纯文本,您需要将纯文本转换为字节数组,然后将该数组写入端口

    这有我们应该如何做到这一点的例子

    Server Client send/receive simple text

    【讨论】:

    猜你喜欢
    • 2018-01-03
    • 2013-08-22
    • 2023-04-05
    • 2018-05-26
    • 2016-01-23
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多