Foros del Web » Programación para mayores de 30 ;) » Java »

¿Como se que variable recibe el msj de cliente?

Estas en el tema de ¿Como se que variable recibe el msj de cliente? en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/06/2014, 19:55
 
Fecha de Ingreso: junio-2014
Mensajes: 7
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta ¿Como se que variable recibe el msj de cliente?

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();
}
}
  #2 (permalink)  
Antiguo 30/06/2014, 03:44
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: ¿Como se que variable recibe el msj de cliente?

"no tengo idea de cual es la variable que recibe lo que Cliente envía" ... Pues el código lo pone bien claro, incluso con comentario y todo

Código Java:
Ver original
  1. do { // procesar los mensajes enviados por el cliente
  2.  
  3. try {
  4. mensaje = ( String ) entrada.readObject();
  5. mostrarMensaje( "\n" + mensaje );
  6. }

en mensaje recibes lo que ha enviado el cliente.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/06/2014, 10:46
 
Fecha de Ingreso: junio-2014
Mensajes: 7
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: ¿Como se que variable recibe el msj de cliente?

ummm pero es q mensaje es la variable que dice lo de conexion exitosa... osea es lo q envia el Servidor al Cliente...

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 );
}
  #4 (permalink)  
Antiguo 30/06/2014, 10:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: ¿Como se que variable recibe el msj de cliente?

Si, pero en esta línea

mensaje = ( String ) entrada.readObject();

cambia su valor por lo que reciba del cliente.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 30/06/2014, 12:46
 
Fecha de Ingreso: junio-2014
Mensajes: 7
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: ¿Como se que variable recibe el msj de cliente?

ahhh ya entendi lo que quieres decir :), aunq me gustaria saber si lo q hice en este metodo esta bn y por q es necesario el do while?, si al quitarselo me funciona el if, podrias colaborarme con eso? Gracias q pena la preguntadera :/ ...

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 );
int num = 33;

try {
mensaje = ( String ) entrada.readObject();
mostrarMensaje( "\n" + mensaje );
}

catch ( ClassNotFoundException excepcionClaseNoEncontrada ) {
mostrarMensaje( "\nSe recibió un tipo de objeto desconocido" );
}

if (mensaje.equals( "CLIENTE>>>"+num )) {
JOptionPane.showMessageDialog(null, "Numero Adivinado, el numero es:"+num);
}

else if (!mensaje.equals( "CLIENTE>>>"+num)){
JOptionPane.showMessageDialog(null, "Numero Errado, el numero es:"+num);
}

else if (!mensaje.equals( "CLIENTE>>> TERMINAR")){
}
}
  #6 (permalink)  
Antiguo 30/06/2014, 15:05
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: ¿Como se que variable recibe el msj de cliente?

Tenías el do while para que se recibieran mensajes del cliente hasta que el cliente enviara "CLIENTE>>> TERMINAR".

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, objeto, string, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:15.