Java - Manejo de red en java

 
Vista:

Manejo de red en java

Publicado por Jesus (4 intervenciones) el 06/12/2005 01:59:45
Hola, que tal, pido auxilio ya que no entiendo como manejar los sockets, estoy haciendo una comunicacion cliente/servidor, este es el codigo pero no comunica como debe ser, si alguien puede ayudarme se lo agradesco.

codigo del Servidor.
/*************************************************************************************************************************/
import java.net.*;
import java.io.*;
import javax.swing.*;

public class SocketServidor
{
private ServerSocket servidor;
private Socket conexion;
private ObjectInputStream entradaDatos;
private ObjectOutputStream salidaDatos;

SocketServidor()
{

//}

//public void configServer()
//{
try{
//el numero 34820 indica el puerto a utilizar y el 20
//indica el maximo de cola que puede estar
servidor = new ServerSocket(34821, 20);

while(true) {

//acepta la conexion
System.out.println("Esperando la conexion :-)" );
conexion = servidor.accept();
System.out.println("Conexion recibida de " + conexion.getInetAddress().getHostName());
//El metodo getInetAddres retorna la direccion del cual el socket es
//conectado (InetAddress). El metodo getHostName() devuelve la direccion IP (String)

//permite el envio de datos

salidaDatos.writeUTF("Estoy enviado Hola mundo, estoy aqui!!!");
salidaDatos = new ObjectOutputStream(conexion.getOutputStream());

salidaDatos.flush();
//Se debe invocar flush() para asegurarse de que los datos viajan efectivamente
//por el canal, y que no se quedan en algún buffer intermedio de nuestro terminal. es de
//tipo void

//permite la entrada de datos
entradaDatos = new ObjectInputStream(conexion.getInputStream());
System.out.println("Se recibieron todos los datos :-)");

//proceso de conexion
String mensaje = "Conexion exitosa ";
salidaDatos.writeObject("Servidor " + mensaje);
salidaDatos.flush();
System.out.println("Servidor " + mensaje);
System.out.println((String)entradaDatos.readObject());


}//cierre del while
}catch(Exception e)
{
System.out.println("no se puedes establecer la conexion ");
}
finally {
try{
//cerrar la conexion
System.out.println("Finalizando la conexion" );
salidaDatos.close();
entradaDatos.close();
conexion.close();
}catch(Exception e)
{}
}


}

public static void main(String [] args)
{
SocketServidor ejemplo = new SocketServidor();
}
}

/*************************************************************************************************************************/

codigo del cliente

import java.net.*;
import java.io.*;

public class SocketCliente
{
private Socket cliente;
private ObjectOutputStream salidaDatos;
private ObjectInputStream entradaDatos;
private String servidor;
private String mensaje;

public SocketCliente()
{
try{

System.out.println("Conectado con el servidor ");
//el metodo getByName le entra un IP o lugar donde esta el servidor, y 34821 es el puerto a
//utilizar que debe ser el mismo que esta en la clase servidor.
//crear el socket
//conectarse con el servidor
cliente = new Socket("192.168.2.104", 34821);
System.out.println("Conectado al servidor" +cliente.getInetAddress().getHostName());

//Establecer el flujo de salida
salidaDatos.writeUTF("Esto lo envio desde el cliente");
salidaDatos = new ObjectOutputStream(cliente.getOutputStream());
salidaDatos.flush();

//Establecer el flujo de entrada
entradaDatos = new ObjectInputStream(cliente.getInputStream());
System.out.println("Se recibio los datos" + mensaje);

//procesar la conexion
mensaje = (String)entradaDatos.readObject();
System.out.println("Mensaje de " + mensaje);

//cerra las conexiones

}catch(Exception e)
{
System.out.println("Imposible conectar con servidor :-(");
}
finally {
try{
System.out.println("Conexion cerrada " );
salidaDatos.close();
entradaDatos.close();
cliente.close();
}catch(Exception e)
{}
}
}

public static void main(String args[])
{
SocketCliente ejemplo = new SocketCliente();
}


}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder