Autor
|
Tema: Temas sobre sockets (Leído 2,886 veces)
|
JordyVP
Desconectado
Mensajes: 1
|
hola comunidad programadora soy nuevo en este sitio ,mi nombre es Jordy mucho gusto, estoy aquí para aprender mas a cerca sobre el lenguaje java tengo un problema con un ejercicio y ya le e dado mil vueltas y no logro realizarlo, este ejercicio me pide que tengo q conectarme a un servidor en donde el cliente hace una petición y solo el servidor responderá con números octales (0,1,2,3,4,5,6,7),pero la conexión debe de ser solo comunicación UDP como puedo realizar eso en el siguiente código? necesito ayuda :'( /código del servidor
/*COMUNICACION UDP (protocolo sin conexión/IP) CLIENTE-SERVIDOR CON HILOS La conexión UDP no es orientada a conexión, es decir, el servidor en principio no sabe de donde viene el mensaje, aunque lo puede saber mirando el datagrama que le llega. En otras palabras y comparando con la conexión TCP, UDP no necesita saber quien se conecta a él. En UDP se envían datagramas a modo de mensajes.*/
package sockets4_servidor;
import java.io.*; import java.net.*;
public class Sockets4_servidor {
static formu1 formu = new formu1(); static Sockets4_servidor meto = new Sockets4_servidor(); int PUERTO = 5000; //Puerto servidor String mensa1; byte[] buffer = new byte[1024]; //buffer donde se almacenara los mensajes DatagramSocket socketUDP; DatagramPacket respuesta; InetAddress direccion; int puertoCliente;
public static void main(String[] args) { formu.setVisible(true);meto.conexion();meto.ejecutarconexion();}
public void ejecutarconexion() { Thread hilo = new Thread(new Runnable() { @Override @SuppressWarnings("empty-statement") public void run() { while (true) { try {mensaje();} finally {;} } } } ); hilo.start();}
public void conexion() { try { formu1.jTextArea1.append("Esperando conexión entrante en el puerto: " + PUERTO+ "\n"); direccion = InetAddress.getLocalHost(); formu1.jTextArea1.append("Servidor IP: " + direccion + "\n");} catch (IOException e) {System.err.println("Error "+e);} }
public void mensaje() { try { //Creacion del socket socketUDP = new DatagramSocket(PUERTO); //Preparo la respuesta DatagramPacket peticion = new DatagramPacket(buffer, buffer.length); //Recibo el datagrama socketUDP.receive(peticion); //Convierto lo recibido y mostrar el mensaje mensa1 =new String(peticion.getData()); formu1.jTextArea1.append(mensa1+"\n"); //Obtengo el puerto y la direccion de origen //Sino se quiere responder, no es necesario puertoCliente = peticion.getPort(); direccion = peticion.getAddress(); mensa1="SERVIDOR: Hola Cliente"; buffer = mensa1.getBytes(); //creo el datagrama respuesta = new DatagramPacket(buffer, buffer.length, direccion, puertoCliente); //Envio la información socketUDP.send(respuesta); } catch (IOException e) {System.err.println("Error "+e);} } }/code]
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
hola comunidad programadora soy nuevo en este sitio ,mi nombre es Jordy mucho gusto, estoy aquí para aprender mas a cerca sobre el lenguaje java tengo un problema con un ejercicio y ya le e dado mil vueltas y no logro realizarlo, este ejercicio me pide que tengo q conectarme a un servidor en donde el cliente hace una petición y solo el servidor responderá con números octales (0,1,2,3,4,5,6,7),pero la conexión debe de ser solo comunicación UDP como puedo realizar eso en el siguiente código? necesito ayuda :'( /código del servidor
/*COMUNICACION UDP (protocolo sin conexión/IP) CLIENTE-SERVIDOR CON HILOS La conexión UDP no es orientada a conexión, es decir, el servidor en principio no sabe de donde viene el mensaje, aunque lo puede saber mirando el datagrama que le llega. En otras palabras y comparando con la conexión TCP, UDP no necesita saber quien se conecta a él. En UDP se envían datagramas a modo de mensajes.*/
package sockets4_servidor;
import java.io.*; import java.net.*;
public class Sockets4_servidor {
static formu1 formu = new formu1(); static Sockets4_servidor meto = new Sockets4_servidor(); int PUERTO = 5000; //Puerto servidor String mensa1; byte[] buffer = new byte[1024]; //buffer donde se almacenara los mensajes DatagramSocket socketUDP; DatagramPacket respuesta; InetAddress direccion; int puertoCliente;
public static void main(String[] args) { formu.setVisible(true);meto.conexion();meto.ejecutarconexion();}
public void ejecutarconexion() { Thread hilo = new Thread(new Runnable() { @Override @SuppressWarnings("empty-statement") public void run() { while (true) { try {mensaje();} finally {;} } } } ); hilo.start();}
public void conexion() { try { formu1.jTextArea1.append("Esperando conexión entrante en el puerto: " + PUERTO+ "\n"); direccion = InetAddress.getLocalHost(); formu1.jTextArea1.append("Servidor IP: " + direccion + "\n");} catch (IOException e) {System.err.println("Error "+e);} }
public void mensaje() { try { //Creacion del socket socketUDP = new DatagramSocket(PUERTO); //Preparo la respuesta DatagramPacket peticion = new DatagramPacket(buffer, buffer.length); //Recibo el datagrama socketUDP.receive(peticion); //Convierto lo recibido y mostrar el mensaje mensa1 =new String(peticion.getData()); formu1.jTextArea1.append(mensa1+"\n"); //Obtengo el puerto y la direccion de origen //Sino se quiere responder, no es necesario puertoCliente = peticion.getPort(); direccion = peticion.getAddress(); mensa1="SERVIDOR: Hola Cliente"; buffer = mensa1.getBytes(); //creo el datagrama respuesta = new DatagramPacket(buffer, buffer.length, direccion, puertoCliente); //Envio la información socketUDP.send(respuesta); } catch (IOException e) {System.err.println("Error "+e);} } }/code] Usa codigo GeSHi sique se puede, con UDP Pasa el codigo de formu1 que es necesario para ver que mas se asi, sino toca hacerte el JFrame completo. Aqui hicimos un ejemplo parecido pero sin UI https://foro.elhacker.net/ejercicios/como_enviar_un_arraylist_del_cliente_al_servidor_usando_udp-t496078.0.html;msg2194233#msg2194233
|
|
« Última modificación: 12 Marzo 2021, 14:07 pm por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sobre mover temas...
Sugerencias y dudas sobre el Foro
|
marlon_agz
|
9
|
3,859
|
19 Septiembre 2007, 19:53 pm
por ^Winder^
|
|
|
Sobre temas antiguos
Sugerencias y dudas sobre el Foro
|
crazykenny
|
5
|
3,990
|
8 Octubre 2011, 02:17 am
por .:UND3R:.
|
|
|
Sobre cerrar temas
Sugerencias y dudas sobre el Foro
|
Stoya
|
7
|
5,088
|
25 Septiembre 2012, 22:58 pm
por WHK
|
|
|
Sobre los temas de Afganistán
« 1 2 »
Sugerencias y dudas sobre el Foro
|
crazykenny
|
10
|
15,064
|
28 Agosto 2021, 21:03 pm
por crazykenny
|
|
|
Varios temas sobre desarrollo Web
Desarrollo Web
|
MayorSmith
|
0
|
3,526
|
25 Marzo 2023, 22:41 pm
por MayorSmith
|
|