package ar.com.javacuriosities.networking.tcp.handler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class Step2ClientSocketHandlerTCP {
public static void main(String[] args) throws IOException {
// Creamos un Socket que va a enviar datos al puerto 4444
Socket socketToConnect = new Socket(InetAddress.getLocalHost(), 4444);
// Usamos un PrintWriter para enviar datos, o sea usaremos un stream de caracteres
PrintWriter socketOutput = new PrintWriter(socketToConnect.getOutputStream(), true);
// Buffer de lectura del server
BufferedReader socketInput = new BufferedReader(new InputStreamReader(socketToConnect.getInputStream()));
// Buffer de lectura para la entrada de comandos
BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));
String fromUser;
String fromServer;
/*
* Verificamos contra null porque si cierran el buffer recibimos un NULL como lectura
*/
while ((fromServer = socketInput.readLine()) != null) {
System.out.println("Server: " + fromServer);
if (fromServer.equals("Bye")) {
break;
}
fromUser = userInput.readLine();
if (fromUser != null) {
System.out.println("Client: " + fromUser);
socketOutput.println(fromUser);
}
}
socketOutput.close();
socketInput.close();
userInput.close();
socketToConnect.close();
}
}