Buenas Noches, resulta que mi profesor me dio este código TCP Cliente/Servidor: Y me dejo como trabajo que el servidor pusiera al cliente adivinar un numero de 0 a 99 pero resulta que no tengo idea de cual es la variable que recibe lo que Cliente envía pues para poder tratar de hacerlo.... alguien podría colaborarme para saber por donde debo iniciar, la verdad no me explicaron mucho sobre el tema solo me dieron el código :/... Gracias ;)
package Logica;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author Estudiante
*/
public class ServidorTCP extends JFrame implements ActionListener {
private JTextField texto;
private JTextArea areaPantalla;
private ObjectOutputStream salida;
private ObjectInputStream entrada;
private ServerSocket servidor;
private Socket conexion;
private int contador = 1;
public ServidorTCP( )
{
super( "Servidor TCP" );
Container contenedor = getContentPane();
texto = new JTextField();
texto.setEditable( false );
texto.addActionListener(this);
contenedor.add( texto, BorderLayout.NORTH );
areaPantalla = new JTextArea();
contenedor.add( new JScrollPane( areaPantalla ), BorderLayout.CENTER );
setSize( 300, 150 );
setVisible( true );
}
public void actionPerformed( ActionEvent e )
{
enviarDatos( e.getActionCommand() );
texto.setText( "" );
}
public void ejecutarServidor()
{
try {
servidor = new ServerSocket( 12345, 100 );
while ( true ) {
try {
esperarConexion();
obtenerInf();
procesarConexion();
}
catch ( EOFException ex ) {
JOptionPane.showMessageDialog( null, "El servidor terminó la conexión", "Resultado", JOptionPane.PLAIN_MESSAGE );
}
finally {
cerrarConexion();
++contador;
}
}
}
catch ( IOException excepcionES ) {
excepcionES.printStackTrace();
}
}
private void esperarConexion() throws IOException {
mostrarMensaje( "Esperando una conexión\n" );
conexion = servidor.accept();
mostrarMensaje( "Conexión " + contador + " recibida de: " +
conexion.getInetAddress().getHostName() );
}
private void obtenerInf() throws IOException {
salida = new ObjectOutputStream( conexion.getOutputStream() );
salida.flush();
entrada = new ObjectInputStream( conexion.getInputStream() );
mostrarMensaje( "\nSe recibio la informacion de E/S\n" );
}
private void procesarConexion() throws IOException {
String mensaje = "Conexión exitosa";
String mensaje2 = "Elija un numero entre 0 y 99";
enviarDatos( mensaje );
enviarDatos( mensaje2);
campo_de_texto_editable( true );
do { // procesar los mensajes enviados por el cliente
try {
mensaje = ( String ) entrada.readObject();
mostrarMensaje( "\n" + mensaje );
}
catch ( ClassNotFoundException excepcionClaseNoEncontrada ) {
mostrarMensaje( "\nSe recibió un tipo de objeto desconocido" );
}
}
while ( !mensaje.equals( "CLIENTE>>> TERMINAR" ) );
}
private void cerrarConexion() {
mostrarMensaje( "\nConexión finalizada\n" );
campo_de_texto_editable( false );
try {
salida.close();
entrada.close();
conexion.close();
}
catch( IOException excepcionES ) {
excepcionES.printStackTrace();
}
}
private void enviarDatos( String mensaje ) {
try {
salida.writeObject( "SERVIDOR>>> " + mensaje );
salida.flush();
mostrarMensaje( "\nSERVIDOR>>> " + mensaje );
}
catch ( IOException excepcionES ) {
areaPantalla.append( "\nError al escribir objeto" );
}
}
private void mostrarMensaje( final String mensajeAMostrar ) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
areaPantalla.append( mensajeAMostrar );
areaPantalla.setCaretPosition(areaPantalla.getText ().length() );
}
}
);
}
private void campo_de_texto_editable( final boolean editable ) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
texto.setEditable( editable );
}
}
);
}
public static void main( String args[] )
{
ServidorTCP aplicacion = new ServidorTCP();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
aplicacion.ejecutarServidor();
}
}