Kann mir jemand helfen, dieses Programm zu debuggen? Problem in TCP-Programm (Java)
Nachfolgend ist Servercode:
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();
}
}
}
Und dies ist der Client-Code:
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();
}
}
Das Problem ist, dass, wenn ich dieses Programm ausführen sowohl Client & Server in unbestimmten Wartezustand gehen. Kann mir jemand sagen, was mit diesem Code nicht stimmt?
Vielen Dank im Voraus!
Ist der richtige Code? . . . Die Importe von TcpClient Naht zu vermasseln: nicht 'PrintWriter' importiert und nicht die' DataOutputStream' verwendet. . . . Wie auch immer, ich schlage vor, den PrintWriter nicht zu verwenden, da er keine Exceptions auslöst. Sie müssen nach Fehlern suchen, die 'checkError' aufrufen. IMHO nur gut für die Protokollierung. –
@Carlos: Danke für den Hinweis! Ich habe es jetzt korrigiert! :) – missingfaktor
@Carlos: Was sollte ich anstelle von PrintWriter haben? – missingfaktor