【问题标题】:telnet session sending 'F3' key to TcpClient using network streamtelnet 会话使用网络流向 TcpClient 发送“F3”键
【发布时间】:2017-12-01 14:06:47
【问题描述】:

我正在使用 c# 进行 telnet 会话,并希望将“F3”发送到会话

TcpClient oClient = new TcpClient();
oClient.Connect(IP, 23);  
NetworkStream ns = oClient.GetStream();
string msg=""// here to send 'F3' key
ns.Write(msg, 0, msg.Length);

我尝试了"{F3}""\033[13~",但没有成功

【问题讨论】:

  • “F3”是什么意思?键盘上带有标签F3 的第三个功能键?如果是这样,如果您从标准输入读取并按下键,您是否检查过您得到的结果?为什么不尝试发送呢?
  • 你说的F3是什么意思?这是 VT100 还是类似的?你需要知道字节序列是什么;例如,一些谷歌搜索表明“\033[13~”是用于 F3 的 ASCII 序列。这真的取决于服务器期望听到什么。另一个消息来源建议“ ^[[13~”
  • 是第三个功能键
  • @MarcGravell 我已经尝试过这段代码,也没有用
  • @CODER 建议:将一个 工作 客户端连接到一个虚拟端点,然后查看该客户端发送给您的内容...复制那个

标签: c# asp.net telnet tcpclient networkstream


【解决方案1】:

这里的底层数据只是一个没有键盘概念的 TCP 流,所以真正的问题是:另一端 期望 解释为F3 是什么?一种方法是设置一个虚拟 TCP 转储控制台 exe(服务器)并让一个工作客户端连接并按 F3 - 检查发送的内容。但是,有一些可能的候选人,包括:

  • "^[[13~"
  • "\033[13~"
  • "\x1bOR"

(针对不同的客户端/服务器实现)

【讨论】:

    猜你喜欢
    • 2013-06-17
    • 2011-04-06
    • 2018-12-25
    • 2014-03-05
    • 2018-10-25
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2021-02-21
    相关资源
    最近更新 更多