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 [Seleccionar]
/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]