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.ServerSocket;
import java.net.Socket;
public class Step1ServerSocketHandlerTCP {
public static void main(String[] args) {
try {
// Creamos el Server Socket
ServerSocket serverSocket = new ServerSocket(4444);
// Aceptamos peticiones
Socket clientSocket = serverSocket.accept();
// Input y Output
PrintWriter clientSocketOutput = new PrintWriter(
clientSocket.getOutputStream(), true);
BufferedReader clientSocketInput = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
// Variables auxiliares
String inputLine, outputLine;
/*
* Usamos un handler que responde en base al mensaje recibido
*/
ServerSocketInputHandler handler = new ServerSocketInputHandler();
outputLine = handler.processInput(null);
clientSocketOutput.println(outputLine);
/*
* Verificamos contra null porque si cierran el buffer recibimos un
* NULL como lectura
*/
while ((inputLine = clientSocketInput.readLine()) != null) {
outputLine = handler.processInput(inputLine);
clientSocketOutput.println(outputLine);
if (outputLine.equals("Bye")) {
break;
}
}
clientSocketOutput.close();
clientSocketInput.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
// Log and Handle exception
e.printStackTrace();
}
}
}