Telnet / SSH到Java`ServerSocket`

时间:2011-08-26 11:00:02

标签: android ssh telnet

我创建了一个非常简单的Java程序,在开放端口java.net.ServerSocket上创建x,并使用accept ()等待连接。我想使用telnet / ssh通过端口x连接到程序,以便我可以与所述程序通信。我的问题是在我连接到端口后,我的程序识别并接受连接,但ssh冻结。我假设这是因为我没有适当的回应。我只想知道接下来应该做些什么。我该如何回应?

可以使用库,但我想了解接下来会发生什么。但是,我仍然非常感谢有人告诉我是否真的应该使用图书馆。此外,我知道一些基本的网络概念,如TCP / IP,OSI,数据被包装,发送,然后解包,但这是我的网络知识的范围。

3 个答案:

答案 0 :(得分:2)

SSH是一种非常具体的协议,涉及加密。你是不是只想telnet到套接字,默认情况下使用纯文本?

答案 1 :(得分:1)

除非你是加密和网络的天才,否则我怀疑你是否可以实现SSH服务器。我不知道你的确切要求是什么,但你可以看看这个:http://www.sshtools.com/en/maverick-sshd/这是JAVA中的一个sshd(但我没有亲自使用它,所以不能告诉你太多)

答案 2 :(得分:1)

ssh对于您想要实现的目标来说可能过于复杂。它会冻结,因为它等待来自您的服务器的响应,它可能永远不会得到。 ssh还复杂了您可能不希望为简单服务器实现的安全要求。

为什么不从客户端开始使用非常基本的东西,就像在tutorial中一样。从那以后,您仍然可以根据需要添加功能和功能。

编辑:

使用telnet发送命令

客户端:

只需发出telnet host port,即可在其中输入say Hello World,然后按Enter键。

服务器端:

您从客户端收到一个字节流。首先,您必须将其解析为String。然后,您可以通过查找第一个空白字符来简单地拆分此String。之前的字符串是你的'命令',空白之后的部分是你的'有效载荷'。

在这个例子中,这会给你'say'作为命令,'Hello World'作为有效载荷。

然后将'command'与已知命令列表进行比较,根据您拥有的命令,您可以将有效负载作为参数执行。