- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Enviar y recibir mensajes con Sockets en Java
Les comparto el código del Servidor:
El código del Cliente:
La comunicación termina hasta que uno de los dos presione "x".
EXTRA:
Para que tu servidor funcione de manera remota o de manera publica, puedes seguir la siguiente liga:
https://ivanovich-hacker.blogspot.com/2019/02/configurar-mi-propio-servidor-web-http.html
La diferencia es, en que en lugar de abrir los puertos 80, 21, tendrás que abrir el puerto que hayas colocado en el código JAVA, que en este caso es el puerto 5000.
También puedes checar este video:
Cualquier duda dejen su comentario en la parte de abajo.
Created By Iván Luis Jiménez
En esta entrada veremos un ejemplo de como enviar mensajes de una computadora a otra, en red local, haciendo uso de los Sockets en Java, por tanto tenemos que crear un Servidor y un Cliente para que la comunicación se lleve a cabo.
Hay que tener muy en cuenta que si esperamos respuesta del cliente por parte del servidor, entonces el cliente, tiene que enviar, y si el cliente envía mensaje al cliente el servidor tiene que esperar dicho mensaje. Por tanto la comunicación tiene que estar sincronizada, si uno transmite el otro escucha y si uno escucha el otro transmitirá.
Les comparto el código del Servidor:
//Iván Luis Jiménez import java.net.*; import java.io.*; import java.util.Scanner; public class servidor{ static int PUERTO = 5000; ServerSocket sc; Socket so; DataOutputStream salida; DataInputStream entrada; String mensajeRecibido; public void initServidor(){ Scanner teclado = new Scanner(System.in); try{ sc = new ServerSocket(PUERTO); so = new Socket(); System.out.println("Esperando conexión..."); so = sc.accept(); System.out.println("Se conecto uno..."); entrada = new DataInputStream(so.getInputStream()); salida = new DataOutputStream(so.getOutputStream()); String msn = ""; while(!msn.equals("x")){ mensajeRecibido = entrada.readUTF();//Leemos respuesta System.out.println(mensajeRecibido); System.out.println("Escriba un msn para enviar"); msn = teclado.nextLine(); salida.writeUTF(""+msn);//enviamos mensaje } sc.close(); }catch(Exception e){ } } public static void main(String[] args){ servidor o = new servidor(); o.initServidor(); } }
El código del Cliente:
//Iván Luis Jiménez import java.net.*; import java.io.*; import java.util.Scanner; public class cliente{ static String HOST = "localhost"; static int PUERTO = 5000; Socket sc; DataOutputStream salida; DataInputStream entrada; String mensajeRecibido; public void initCliente(){ Scanner teclado = new Scanner(System.in); try{ sc = new Socket(HOST, PUERTO); salida = new DataOutputStream(sc.getOutputStream()); entrada = new DataInputStream(sc.getInputStream()); String msn = ""; while(!msn.equals("x")){ System.out.println("Escriba un msn para enviar"); msn = teclado.nextLine(); salida.writeUTF(msn);//enviamos mensaje mensajeRecibido = entrada.readUTF();//Leemos respuesta System.out.println(mensajeRecibido); } sc.close(); }catch(Exception e){ } } public static void main(String[] args){ cliente o = new cliente(); o.initCliente(); } }Unas capturas
La comunicación termina hasta que uno de los dos presione "x".
EXTRA:
Para que tu servidor funcione de manera remota o de manera publica, puedes seguir la siguiente liga:
https://ivanovich-hacker.blogspot.com/2019/02/configurar-mi-propio-servidor-web-http.html
La diferencia es, en que en lugar de abrir los puertos 80, 21, tendrás que abrir el puerto que hayas colocado en el código JAVA, que en este caso es el puerto 5000.
También puedes checar este video:
Cualquier duda dejen su comentario en la parte de abajo.
Created By Iván Luis Jiménez
Cliente Java Sockets
Cliente y Servidor Sockets Java
Enviar y recibir mensajes con Sockets en Java
Servidor Java Sockets. Server Client Socket Java
Servidor remoto JAVA socket
Sockets Java
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Muy buen aporte amigo, me ayudó. Estoy intentando hacer una comunicacion igual local entre un programa que envíe strigns desde python y recibir en android. Tendras algun material que me pueda servir? muchas gracias!
ResponderBorraruna pregunta la clase cliente no hace nada se ejecuta sin errores pero solo salen letras que dicen successful
ResponderBorrarespero y puedas ayudarme
Gracia compa, solo una consulta, en vez de enviar un mensaje string, tambien se puede enviar objetos
ResponderBorrarSi es posible enviar también objetos.
BorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarMil gracias, me ha sido muy útil. Usted, señor, es un héroe. :)
ResponderBorrarSiento el otro mensaje, que hice misspell en un par de palabras XD
Muy interesante gracias por compartirlo. Un saludo
ResponderBorrarUna pregunta este proyecto es del tema paso de mensajes?
ResponderBorrar