Qualcuno può aiutarmi a eseguire il debug di questo programma?Problema nel programma TCP (Java)
Quello che segue è codice del server:
package networking;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
class TcpServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5555);
while (true) {
Socket client = serverSocket.accept();
Scanner reader = new Scanner(client.getInputStream());
PrintWriter writer = new PrintWriter(client.getOutputStream());
String inputString = reader.nextLine();
System.out.println("Received from client : " + inputString);
writer.write(inputString.toUpperCase());
client.close();
}
}
}
e questo è il codice del client:
package networking;
import java.io.PrintWriter;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
class TcpClient {
public static void main(String[] args) throws IOException {
Socket client = new Socket("localhost", 5555);
PrintWriter writer = new PrintWriter(client.getOutputStream());
Scanner reader=new Scanner(client.getInputStream());
writer.println("oPen SOurCe RUleS !");
System.out.println("Received from server : "+reader.nextLine());
client.close();
}
}
Il problema è che quando ho eseguito questo programma sia client & server di entrare in stato di attesa indefinito. Qualcuno potrebbe dirmi cosa c'è di sbagliato in questo codice?
Grazie in anticipo!
È il codice corretto? . . . Le importazioni di TcpClient seam da incasinare: non importate 'PrintWriter' e non usate' DataOutputStream'. . . . Ad ogni modo suggerisco di non usare PrintWriter poiché NON getta Eccezioni, devi controllare Errori chiamando 'checkError'. IMHO va bene solo per il logging. –
@Carlos: Grazie per avermelo fatto notare! L'ho corretto ora! :) – missingfaktor
@Carlos: cosa avrei dovuto usare al posto di PrintWriter? – missingfaktor