如何将外部设备传入的Telnet数据转换为VB6

如何将外部设备传入的Telnet数据转换为VB6,vb6,ascii,telnet,translate,Vb6,Ascii,Telnet,Translate,我连接了一个外部设备。 问题是,我在建立连接后立即得到的反馈有点像ASCII码: ÿý↑ 在检查这些网站后: 我发现: ÿ是255,代表IAC解释为命令和 ý是253,代表DO和 ↑ 是24,代表取消 要将命令发送回终端,我需要执行以下操作: winsck.SendData Chr(255) 'IAC winsck.SendData Chr(252) 'WONT winsck.SendData Chr(24) 'CANCEL 为了将ASCII码转换为字符,我编写了以下代码: lblChar

我连接了一个外部设备。 问题是,我在建立连接后立即得到的反馈有点像ASCII码:

ÿý↑

在检查这些网站后:

我发现: ÿ是255,代表IAC解释为命令和 ý是253,代表DO和 ↑ 是24,代表取消

要将命令发送回终端,我需要执行以下操作:

winsck.SendData Chr(255) 'IAC
winsck.SendData Chr(252) 'WONT
winsck.SendData Chr(24) 'CANCEL
为了将ASCII码转换为字符,我编写了以下代码:

lblChar = Asc(txtASCII)
lblASCII = Chr(txtChar)
为了将字符转换为ASCII代码,我编写了以下代码:

lblChar = Asc(txtASCII)
lblASCII = Chr(txtChar)
我想从终端获取数据并修改它们,但首先我必须完成这个ASCII编码

它在cmd.exe中的正常工作方式: 我写telnet,后跟目的地的IP地址:

终端的telnet IP地址

然后cmd问我密码。之后,我就可以编写命令了。通常我写得像

lm-h

然后它会给我发送很多数据。我想用我的VB6程序做同样的事情

发送终端IAC后,不会取消我返回: ÿþ↑ÿû ÿûᶫÿý

当我试图翻译它时,我得到了这个结果:

IAC-不要-取消-IAC-将空格IAC-将-文本结束-IAC-执行

发送后,终端IAC将取消 我回来了:ÿú↑ ÿð=IAC-所示选项的次协商-取消空格IAC-次协商参数结束

说真的,这意味着什么?我应该回答什么


提前感谢

因为这些看起来像Telnet命令,而且您提到如果您通过Telnet连接,您可以获取数据,我想您必须编写一个Telnet客户端。我建议您从搜索telnet RFC开始,如果您走这条路线,可能还有telnet客户端vb6


但是,另一种替代方法可能是自动化像Putty这样的telnet客户端,这个问题可能会有所帮助:

您的设备似乎充当telnet服务器,您需要在VB6中实现客户端


您已经看过了吗?

通常您应该尝试获取您想要与之通信的外部终端的技术手册。第一个简单的步骤是在互联网上搜索产品名称并查找手册。我曾试图询问我的员工,但他说,除了技术文档外,我们在终端上没有更详细的文档。它是由我的works以前的合作伙伴公司制作的,因此不可能在web上查找它-我尝试过:/看起来像IAC DO注销,但我不确定服务器将其发送到客户端有何意义。您是否确实尝试过使用Windows Telnet客户端,它是否按照您的建议工作。。。或者你只是说这就是你希望它能起作用的方式?谢谢你让我意识到这一点。这就是它在cmd.exe中的正常工作方式。我发现了一些新的内容,并编辑了问题和解释。谢谢您的回答!我必须说,我对客户端和服务器的功能以及我的终端应该是什么感到困惑。这可能会影响我开发项目的方式。。。我会试着进一步检查的,谢谢你:实际上我已经检查过了,但我还没有完全理解。我会试着再看一遍。我没有看到太多的选择。当然,你可以考虑从商业来源的ActiveX库。经过学习VB6和telnet连接,我终于得到了。我制作了一个没有用户控件的客户端,并将它与其他东西混合在一起,所以我对任何东西都不了解。当然,您必须先阅读RFC854,然后再阅读有关用户控件的内容。我使用了你给我的链接中的用户控件,添加了一些我自己的代码,现在我有了一个与终端通信的项目!我非常感谢你的帮助,我只需要首先理解这一切:P