Java 了解Apache Telnet客户端是否已连接并正在运行
我使用org.apache.commons.net.Telnet.TelnetClient实现了一个Java Telnet客户端,我不知道连接何时启动并运行。 这是连接部分:Java 了解Apache Telnet客户端是否已连接并正在运行,java,client,telnet,Java,Client,Telnet,我使用org.apache.commons.net.Telnet.TelnetClient实现了一个Java Telnet客户端,我不知道连接何时启动并运行。 这是连接部分: static org.apache.commons.net.telnet.TelnetClient tc = new org.apache.commons.net.telnet.TelnetClient(); TerminalTypeOptionHandler ttopt = new TerminalTy
static org.apache.commons.net.telnet.TelnetClient tc = new org.apache.commons.net.telnet.TelnetClient();
TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler("VT100", true, true, true, true); //VT52
EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false);
SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true);
try
{
SecurityTelnetClient.tc.addOptionHandler(ttopt);
SecurityTelnetClient.tc.addOptionHandler(echoopt);
SecurityTelnetClient.tc.addOptionHandler(gaopt);
}
catch (Exception e)
{
log.error("Error registering option handlers: " , e);
}
tc.connect("IP", "PORT");
此函数返回连接状态:
public boolean isConnected(){
return this.tc.isConnected();
}
但即使此函数返回true,实际上也不会有更多的数据从Telnet服务器发送到通道。我如何理解连接被阻塞
谢谢一般来说,服务器正在等待您发送内容。如果您不发送任何内容,您将在read方法中被阻止。在我的情况下,我不向服务器发送任何内容,而是等待来自服务器的数据。连接可能一整天都开放。我想我可以每X分钟重新启动一次连接,那么你到底有什么问题?当应用程序启动时没有问题,但每天早上晚上之后,我必须重新启动telnet客户端连接,因为即使isConnected()函数返回“True”,也无法工作(不会从服务器接收任何信息)。所以问题是,为什么函数返回true,但连接不能正常工作?通常,服务器会等待您发送一些东西。如果您不发送任何内容,您将在read方法中被阻止。在我的情况下,我不向服务器发送任何内容,而是等待来自服务器的数据。连接可能一整天都开放。我想我可以每X分钟重新启动一次连接,那么你到底有什么问题?当应用程序启动时没有问题,但每天早上晚上之后,我必须重新启动telnet客户端连接,因为即使isConnected()函数返回“True”,也无法工作(不会从服务器接收任何信息)。所以问题是为什么函数返回true,但连接不能正常工作?