Título: sockets
Publicado por: m@o_614 en 1 Marzo 2015, 03:10 am
Saludos Estoy empezando a estudiar sobre los sockets. Tengo este programa sencillo que me pasaron para estudiarlo, una clase se llama Emisor y la otra Receptor. Ya he estado leyendo sobre la clase DatagramPacket y DatagramSocket. La duda que tengo es si el codigo se puede realizar sin necesidad de tener dos archivos .java, y si se puede poner todo en un solo proyecto. import java.net.DatagramSocket; import java.net.DatagramPacket; import java.net.SocketException; import java.net.InetAddress; import java.net.UnknownHostException; import java.io.IOException; public class Emisor{ public static void main (String args []){ //int puertoSalida=2002; byte[] buffer; //System.out.print("Iniciando socket emision en puerto "+puertoSalida+"..."); try{ socketEmision =new DatagramSocket(); //constructor sobrecargado para recibir o no un #puerto buffer=mensaje.getBytes(); socketEmision.send(dp); System. out. print("Cerrando socket emision..."); socketEmision.close(); System. out. println("Error iniciando socket: "+e. getMessage()); System. out. println("UnknownHostException: "+e. getMessage()); System. out. println("IOException: "+e. getMessage()); } } }
y el otro es: import java.net.DatagramSocket; import java.net.DatagramPacket; import java.net.SocketException; import java.io.IOException; public class Receptor{ public static void main (String args []){ int puertoEntrada=2001; byte[] buffer=new byte[1024]; System. out. print("Iniciando socket recepcion en puerto "+puertoEntrada +"..."); try{ while(true){//deseable validar con bandera socketRecepcion.receive(dp); System. out. print("IP emisora: "+dp. getAddress(). toString()+":"); } //socketRecepcion.close();//código inalcanzable sin bandera System. out. println("Error iniciando socket: "+e. getMessage()); System. out. println("IOException: "+e. getMessage()); } System. out. print("Cerrando socket recepcion..."); } }
es estrictamente necesario tener dos archivos???
Título: Re: sockets
Publicado por: Usuario Invitado en 1 Marzo 2015, 03:42 am
Claro que si. El objetivo de trabajar con Sockets comunicar un cliente con un servidor remotamente.
Para pruebas puedes tener el server y el client en el mismo proyecto. Ambas serán dos clases que contengan el método main. Solo corre primero el server y luego el client.
También puedes instanciar el server y el client en un mismo main. Pero no es práctico.
Título: Re: sockets
Publicado por: m@o_614 en 3 Marzo 2015, 02:23 am
muchas gracias Gus Garsaky por tu respuesta, otra duda, si yo tengo aparte de la clase Emisor y Receptor otra clase en la que tengo dos atributos y esos atributos se los quiero pasar a la clase Emisor, seria algo como esto??? import java.net.DatagramSocket; import java.net.DatagramPacket; import java.net.SocketException; import java.net.InetAddress; import java.net.UnknownHostException; import java.io.IOException; import javax.swing.*; public class Emisor { byte[] mensaje; mensaje = campoMensaje.getText().getBytes(); IP = campoIP.getText(); } public void main() { try { emisionSocket.send(paquete); emisionSocket.close(); } e.getMessage(); } e.getMessage(); } e.getMessage(); } } }
de antemano gracias
Título: Re: sockets
Publicado por: Usuario Invitado en 3 Marzo 2015, 04:09 am
Sí, a simple vista me parece correcto.
|