¿Alguien me puede ayudar a depurar este programa?Problema en el programa TCP (Java)
El siguiente es el código del servidor:
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();
}
}
}
Y este es el código de cliente:
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();
}
}
El problema es que cuando ejecuto este programa tanto para el cliente & servidor entra en estado de espera indefinida. ¿Alguien podría decirme qué pasa con este código?
¡Gracias de antemano!
¿Es el código correcto? . . . Las importaciones de costuras de TcpClient se han estropeado: no se han importado 'PrintWriter' y no se han utilizado' DataOutputStream'. . . . De todos modos, sugiero no utilizar el PrintWriter, ya que NO arroja Excepciones, debe verificar los errores que invocan 'checkError'. En mi humilde opinión solo es bueno para la tala. –
@Carlos: ¡Gracias por señalarlo! ¡Lo he corregido ahora! :) – missingfaktor
@Carlos: ¿Qué debería haber usado en lugar de PrintWriter? – missingfaktor