尝试连接到TCP服务器时出现此错误:
java.net.ConnectException: Connection timed out: connect
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at gui.ChessPanel$ChessServerConnection.<init>(ChessPanel.java:211)
at gui.ChessPanel.<init>(ChessPanel.java:32)
at gui.ChessFrame.initialize(ChessFrame.java:29)
at gui.ChessFrame.<init>(ChessFrame.java:23)
at dcnw_chess.TCPClient.main(TCPClient.java:28)
BUILD SUCCESSFUL (total time: 4 minutes 55 seconds)
这是来自客户端的代码:
public class ChessServerConnection {
private static final int PORT = 8000;
private static final String HOST = "109.133.4.149";
//private static final String HOST = "213.49.237.163";
InputHandlerThread inputhandler;
private Socket sock;
private BufferedReader in;
private PrintWriter out;
public ChessServerConnection() {
try {
sock = new Socket(HOST, PORT);
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
out = new PrintWriter(sock.getOutputStream(), true);
inputhandler = new InputHandlerThread(this, in);
inputhandler.start();
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
这是服务器上的代码。
private static SpelController sc = SpelController.getInstance();
private ServerSocket serverSocket;
Vector client_socks = new Vector(1);
public static void main(String[] args) {
try {
TCPServer server = new TCPServer(8000);
} catch (IOException ex)
{
System.out.println("An error occurred while launching the server!");
}
}
public TCPServer(int port) throws IOException {
ServerSocket serverSock = new ServerSocket(port);
Socket clientSock;
String cliAddr;
while (true) {
System.out.println("Waiting for a client...");
clientSock = serverSock.accept();
if (client_socks.size() >= 2) {
System.out.println("Server connection capacity reached.");
clientSock.close();
continue;
}
client_socks.addElement(clientSock);
sendIdentity();
sendBoard();
cliAddr = clientSock.getInetAddress().getHostAddress();
new TCPClientHandler(clientSock, cliAddr, this).start();
}
我关闭了两台计算机的防火墙......
答案 0 :(得分:0)
试试这个;如果它不起作用,请尝试hamachi,如果这不起作用,那么您的路由器或防火墙可能会阻止该端口。
private static final int PORT = 443;
private static final String HOST = "109.133.4.149";
//private static final String HOST = "213.49.237.163";
InputHandlerThread inputhandler;
private Socket sock;
private BufferedReader in;
private PrintWriter out;
public ChessServerConnection(String host1, int port1) {
PORT = port1;
HOST = host1;
try {
sock = new Socket(HOST, PORT);
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
out = new PrintWriter(sock.getOutputStream(), true);
inputhandler = new InputHandlerThread(this, in);
inputhandler.start();
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
新文件,但在同一个项目中:
import javax.swing.JFrame;
public class ChessServerConnectionRUN{
public static void main(String[] args){
ChessServerConnection rungui;
rungui = new ChessServerConnection("youIP", 443);
rungui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
rungui.startClienting();
}
}