使用VB.net进行套接字编程和telnet

时间:2009-09-28 05:57:56

标签: vb.net sockets telnet

我正在VB.net中编写一个基于GUI的应用程序,它通过telnet与LambdaMOO服务器通信,发送命令以显示对象层次结构,然后解析输出并创建对象层次结构的可视化表示。

所以我的问题是:是否有某种类型的“telnet客户端”类用于.NET来简化数据的发送和接收,或者我是否必须使用套接字API编写自己的类?

Mono有这样的东西吗?

除非是一个简单的解决方案,否则任何人都有一个很好的教程可以指向VB.net中的telnet客户端编程?

7 个答案:

答案 0 :(得分:1)

telnet protocol基本上只是通常的TCP协议,有一堆你可能不需要实现的可选内容。所以你打开一个套接字并开始用套接字流接口发送和接收数据。

尝试使用常规套接字API,您可能会发现它非常简单。

答案 1 :(得分:1)

好的,我遇到了类似的问题并且忽略了所有安全问题等等,想要从VB发起的连接到远程设备的TELNET并做一些事情。我同意整个谈判过程是一个地狱般的事情,但是一旦你解决了它实际上很容易实现。我决定不要停下来,因为如果你可以在网络流中写入和读取1和0,那么当我可以清楚地看到它无法完成时,我会继续阅读。

以下链接中的代码将启动连接,并通过TELNET实际交换明文信息。给出发送用户名和密码的示例组合显示如何读取和写入连接。

重要提示 - 最初有一个很好的大文本框或者某些东西来捕获缓冲区中的所有内容(变量returnsndata)。这将有助于您诊断问题。另外在我的博客上查看如何在没有文本框闪烁的情况下执行此操作。一旦你完成了所有这些并且你知道你的脚本是可靠的,就可以删除任何屏幕更新,它会突然显现而不是一个年龄。

为非常脏的代码和糟糕的网站布局道歉。

http://myhead-online.blogspot.com/2009/05/vb-net2008-express-telnet-to-sun.html

答案 2 :(得分:0)

只是一个建议。您可以尝试编程您的vb应用程序以批处理模式执行现有的telnet应用程序。

这里是link供您参考。请参阅7.3在批处理文件和脚本中使用Plink。希望它有所帮助。

答案 3 :(得分:0)

您可以使用任意数量的库中的一个。这是一个图书馆:

LINK

对于其他人尝试使用以下方式搜索:library telnet mud .NET

最后,有任何数量的开源MUD / MOO / MUSH项目随时可以开放,他们愿意分享想法并寻找人们来帮助项目。

答案 4 :(得分:0)

我用telnet进行了试验。你必须使用像wireshark这样的工具来确定需要启动哪些命令。我确实发现与我的unix盒子进行通信是一个很大的挑战。首先,您必须知道您的telnet说明。您可能会发现很难确定应用程序的状态 - 无论是否已经登录。你必须为它制定自己的逻辑。

您需要做的另一件事是将telnet返回的字节解析为命令或指令数据,即您必须知道收到的字节是指令还是其他正在尝试发送给您的内容。 Here是一个可以派上用场的参考。

首先,我建议您开始使用wireshark工具,并通过手动和应用程序来回发送通信。

答案 5 :(得分:0)

您可以查看Expect command这是一个可编写脚本的解决方案,用于在远程计算机上运行telnet,f​​tp等。然后,您可以编写脚本以连接并检索数据。

这将消除管理套接字和协议的所有复杂性。

答案 6 :(得分:0)

从LambdaMOO结束时,如果您有向导访问权限或与某人有朋友,您可以让MOO通过其他协议向您提供您可能更容易使用的数据,例如HTTP。您只需要MOO上的一个对象,其中do_login_command()设置为处理请求,然后使用listen()内置来使该对象侦听给定端口。只要协议不需要任何复杂的SSL,就可以很容易地在MOO端进行编码。因此,如果VB.net更容易处理HTTP等,那么这可能是值得的。