我一直在Linux和Windows上测试以下程序。在Windows上,这可以正常工作,但在Linux(Ubuntu)上,这将随机停止并显示“连接被拒绝”。
连接问题可能是什么原因?我正在尝试连接到收据打印机,例如使用telnet到IP地址也可以。
JRE for Linux中是否存在错误,或者是否可以使用sysctl(TCP参数)更改某些内容?
//java socket client example
import java.io.*;
import java.net.*;
public class socket_client
{
public static void main(String[] args) throws IOException
{
int i = 1;
while (i < 100) {
Socket s = new Socket();
s.setReuseAddress(true);
String host = "10.0.10.71";
PrintWriter s_out = null;
try
{
s.connect(new InetSocketAddress(host , 9100));
System.out.println("Connected");
//writer for socket
//s_out = new PrintWriter( s.getOutputStream(), true);
}
//Host not found
catch (UnknownHostException e)
{
System.err.println("Don't know about host : " + host);
System.exit(1);
}
//Send message to server
String message = "GET / HTTP/1.1\r\n\r\n";
//s_out.println( message );
s.close();
System.out.println(s.isClosed());
System.out.println("Message send");
i++;
}
}
}