我使用 telnet 连接开发服务器和设备之间的双向对话。我想在发送下一个命令之前等待并获取读取缓冲区。我尝试使用这个:
TcpClient tcpClient;
NetworkStream networkStream;
StreamWriter streamWriter;
tcpClient = new TcpClient("10.0.0.51", 23);
networkStream = tcpClient.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
networkStream.ReadTimeout = 500;
while(wline!="exit"){
Console.Write(streamReader.ReadToEnd());
Console.Write("next command:");
wline =Console.ReadLine();
streamWriter.Write(wline);
}
Run Code Online (Sandbox Code Playgroud)
但似乎 ReadToEnd() 无法正常工作。如果我使用 Read() (单字节)我可以收到一些东西。
我的本地和远程都有一个 ldap 服务器。我可以 telnet 到我的本地 ldap url,但是我在 telnet 到我的遥控器时遇到了麻烦。
telnet www.ilovebears.com 389
我得到一个带有闪烁光标的空屏幕。
这是因为某些套接字配置还是端口不可用?
我的 FTP 测试服务器有问题。我已经安装并配置了 FileZilla 服务器,它侦听端口 21 上的控制连接,然后它可以在 50100 和 51100 之间的端口上提供被动模式数据连接。
我正在尝试本地连接 127.0.0.1:21 并检索根 FTP 目录中的文件和文件夹列表。
FileZilla 客户端:
在 MS-DOS 中工作FTP:在 MS-DOS 中工作
TELNET:控制连接和用户身份验证 OK,然后我切换到被动模式,当我尝试使用命令 LIST 检索文件和文件夹时,它响应“可以'不为传输“/”而打开数据连接。
我尝试为端口 50100-51100 和 FileZilla 服务器设置防火墙规则。它仍然无法正常工作。
我正在运行 CentOS 7 机器,当我尝试 telnet localhost 8080 时,我收到以下消息
Trying ::1...
Telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Telnet: conenct to address 127.0.0.1: Connection refused
Run Code Online (Sandbox Code Playgroud)
我已将 8080/tcp 添加到 IP 表并打开了端口。知道是什么阻止了它吗?
我尝试在脚本中使用 telnet (在 python 程序中使用)。我想只用一行就可以建立连接、发送命令并退出连接。我想发送的命令是在远程计算机上启动一个程序,但我不想等待该程序结束来退出 telnet 连接。
我尝试执行以下操作:“echo myCommand | netcat 192.168.1.50 23”,但它会等待程序结束。
感谢您的帮助
我正在使用org.apache.commons.net.telnet
库与我的 Telnet 服务器建立连接,它的实现与标准略有不同RFC 854,但没什么可怕的。
实际上,我建立到这个远程 telnet 服务器的连接的唯一方法是利用 org.apache.commons.net.telnet
,因为纯 Java Socket 不起作用。
我一直坚持使用这个库,因为我无法找到一种使用sendCommand
方法发送命令的方法,该方法接受一个byte
(不是byte[]
) 因为它是唯一的参数。
我将我的String command
转换为byte[]
数组,但我不能将其作为参数传递...
到目前为止,这是我的代码:
import org.apache.commons.net.io.Util;
import org.apache.commons.net.telnet.TelnetClient;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Telnet {
public static void main(String[] args) {
TelnetClient telnet;
telnet = new TelnetClient();
try {
telnet.connect("17.16.15.14", 12345);
byte[] cmd = "root".getBytes();
telnet.sendCommand(cmd); // this is where I'm stuck
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
} …
Run Code Online (Sandbox Code Playgroud) 现在我正在尝试使用来自 Unix 平台的 Curl 命令调用 Web 服务。Web 服务在外部服务器上可用。我只能使用 telnet 连接外部服务器。Web 服务使用基本身份验证,我必须提供用户名和密码。
任何人都可以帮助我以正确的方式执行此操作吗?
我使用这个命令来测试终端中的网络连接:
docker run --rm --name test -it -p 9999:9999 busybox nc -l 0.0.0.0:9999
Run Code Online (Sandbox Code Playgroud)
并在另一个终端
$ telnet localhost 9999
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
似乎它立即被关闭连接,我无法输入任何内容。
当我尝试 localy 时它工作正常
nc -l 0.0.0.0:9999
Run Code Online (Sandbox Code Playgroud)
和
telnet localhost 9999
Run Code Online (Sandbox Code Playgroud)
Docker 版本 17.12.1-ce,构建 7390fc6 Ubuntu VERSION="18.04.1 LTS (Bionic Beaver)"
最后几天,我与一个奇怪的甲骨文问题面对面.我在tnsnames.ora中定义了数据库.安装了Oracle客户端,客户端和客户端/ bin已添加到PATH.
Ping
工作,tnsping
工作,我可以通过数据库端口与telnet连接到主机.
当我尝试运行尝试连接到db的应用程序时,我得到了
ORA-12543:TNS:目标主机无法访问
当我尝试通过sqlplus连接时,情况也是如此
sqlplus用户名/密码@ TNSNAME
情况只发生在一个工作站上,它的共同点应该是有效的.
WS是Windows 7 64位.
数据库:
Oracle数据库10g企业版10.2.0.5.0版 - 64位生产