Sto provando a programmare un client-server (semplice, per i principianti), solo per stabilire una connessione e vedere se funziona. E lo fa. Finché rimango nelle mie quattro mura/rete. Non appena provo a passare tramite i miei router IP, il client genera un messaggio di errore fine potente. Tutti i soliti sospetti sono stati eliminati: il Router Port forwarding è attivo, il firewall non interferisce (beh, non funziona ancora quando lo spengo), e canyouseeme.org dice che può stabilire una connessione con il mio scelto porta quando il server è in esecuzione.Errore server client di rete Java
Ecco il codice sorgente per il server, dal momento che ho capito che era possibile passare tramite la riga di comando con un po 'di telnet. Quando provo a stabilire una connessione, si dice solo Could not open connection to the host, on port 49163:Connection failed
Server:
import java.net.*;
import java.io.*;
public class ChatServer {
public static void main(String[] args) throws IOException {
ServerSocket server = null;
try {
System.setProperty("java.net.preferIPv4Stack" , "true");
server = new ServerSocket(49163);
} catch (IOException e) {
System.err.println("Could not listen on port: 49163.");
System.exit(1);
}
Socket client = null;
try {
client = server.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
BufferedReader in = new BufferedReader(newInputStreamReader(client.getInputStream()));
String inputLine;
String outputLine;
out.println("Connection established");
while ((inputLine = in.readLine()) != null) {
if (inputLine.equals("exit")) {
break;
}
outputLine = inputLine;
out.println(outputLine);
}
out.close();
in.close();
client.close();
server.close();
System.out.println("Server offline");
}
}
Oh sì, preferIP4vStack era qualcosa ho preso su StackOverflow, ma non sembra funzionare per me.
Per qualche motivo non sono in grado di includere il codice per il client, continuo a ricevere messaggi sulla formattazione e non riesco a capirlo. Ma il mio modo di vedere è che non sono nemmeno in grado di connettermi tramite la riga di comando (quando provo a connettermi con l'IP "reale"), quindi il client non deve essere coinvolto. Ma per voi che vogliono vedere l'errore comunque:
java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at ChatClient.main(ChatClient.java:12)
Puoi pubblicare il codice (client?) Che genera l'eccezione? Inoltre, se si mantiene lo stesso stile con quello che sta generando l'eccezione, la stampa della traccia dello stack completo oltre al messaggio user-friendly può essere d'aiuto. – Windle
Vishal, e come lo sai? –
@NikolaiNFetissov: Il mio errore. C'è stata una fuga durante l'errore che l'OP ha menzionato correttamente. –