import java.lang.System; import java.net.ServerSocket; import java.net.Socket; import java.io.*; public class Server { public static void main(String args[]) { try { ServerSocket servidor = new ServerSocket(1234); // Se crea un socket servidor con el puerto especificado int localPort = servidor.getLocalPort(); // Regresa el puerto por el cual se estA escuchando System.out.println("Servidor escuchando en el puerto "+localPort+"."); Socket cliente = servidor.accept(); // Escucha por una conexiOn de un cliente y la acepta String destName = cliente.getInetAddress().getHostName(); // Nombre del host cliente int destPort = cliente.getPort(); // Regresa el puerto remoto con el cual estA conectado System.out.println("ConexiOn aceptada de "+destName+" en el puerto "+ destPort+"."); BufferedReader inStream = new BufferedReader(new InputStreamReader(cliente.getInputStream())); // Se leE del cliente //DataOutputStream outStream = new DataOutputStream(cliente.getOutputStream()); // Se escribe en el cliente PrintStream outStream = new PrintStream(cliente.getOutputStream()); // Se escribe en el cliente boolean ciclo = false; // Bandera para el ciclo infinito do { String inLine = inStream.readLine(); System.out.println("Recibido: "+inLine); if(inLine.equalsIgnoreCase("salir")) ciclo=true; String outLine=new InvierteCadena(inLine.trim()).getString(); //for(int i=0;i<outLine.length();++i) // outStream.write((byte)outLine.charAt(i)); outStream.println(outLine); outStream.write(13); outStream.write(10); outStream.flush(); System.out.println("EnvIo: "+outLine); } while(!ciclo); inStream.close(); outStream.close(); cliente.close(); servidor.close(); } catch (IOException ex) { System.out.println("EscepciOn!!!"); } } } class InvierteCadena { String s; public InvierteCadena(String in) { int len = in.length(); char VectorC[] = new char[len]; for(int i=0;i<len;++i) VectorC[len-1-i]=in.charAt(i); s = String.valueOf(VectorC); } public String getString() { return s; } }