Vamos a desarrollar una pequeña aplicación de
comunicación en redes, la haremos del tipo Cliente/Servidor, a veces cuando
tenemos aplicaciones de este tipo es difícil distinguir que parte de la aplicación
es el cliente y cual el servidor, en nuestro caso será fácil darse cuenta de
cual es cual. Normalmente el cliente es que inicia la comunicación pidiendo un
servicio y el servidor es el que provee ese servicio.
La
comunicación entre ambas partes además de tener como infraestructura sockets de
TCP/IP tiene que tener un protocolo particular, este protocolo es que marca el
orden de la transmisión de los datos y el tipo de estos datos, para que
coincida el tipo de datos que una de las entidades manda y el tipo de datos que
la otra espera recibir, esto es muy importante porque si no se respeta la
aplicación no sirve para nada, además de que contendrá una serie de errores. Esquema de un Servidor
- Abrir un socket (ServerSocket) para esperar por peticiones de conexión
- Al llegar una petición, crear otro socket (Socket) por medio del cual se comunicará con el cliente
- Asociar uno o más flujos intermedios a los flujos de entrada (InputStream) y de salida (OutputStream) asignados al socket
- Leer/Escribir a los flujos de acuerdo al protocolo establecido
- Eventualmente termina la comunicación
- Cerrar flujos y sockets
Esquema del Cliente
- Abrir un socket (Socket) para conectarse y comunicarse con el Servidor
- Establecer conexión con el Servidor
- Asociar uno o más flujos intermedios a los flujos de entrada (InputStream) y de salida (OutputStream) asignados al socket
- Leer/Escribir a los flujos de acuerdo al protocolo establecido
- Eventualmente termina la comunicación
- Cerrar flujos y sockets
Como esta entrada es con fines didácticos solo pido se utilice como una guia no para ser presentada directamente como un trabajo desarrollado por ustedes, la pueden descargar desde los siguientes links:
Deja tu comentario o Agradecimiento, ESTO NO CUESTA NADA. Es lo que nos motiva a ayudar.
GAMA: Gracias por la aplicacion esta muy buena la del cliente servidor me ha sido d mucha ayuda
ResponderEliminarMuchas gracias por este aporte, me servirá mucho para aprender mas acerca de los socket, es uno de los mas completos que he visto.
ResponderEliminar¿Se le Podría crear o implementar conexión a MySQL y así poder realizar consultas desde el cliente y el servidor?
Saludos, que Dios te bendiga mucho! gracias!!
Buena pregunta... podrías?
ResponderEliminarOk si se puede, estén atentos a esta entrada que voy a modificar este proyecto...
ResponderEliminarSaludos,
Hola, gracias por el tuto, esta bueno... tambien quisiera que dieras un ejemplo de cliente-servidor donde el servidor se conecte a una base de datos y el cliente pida una consulta, y luego el servidor le muestre dicha consulta... Gracias..!!
ResponderEliminarGracias por su colaboración y aportes en el proceso de aprendizaje este ejemplo ayuda mucho
ResponderEliminarresponder el post plis
ResponderEliminarHola, gracias por compartir! :)
ResponderEliminarMe servirá de mucho
Saludos!!
Gracias!, estaba varado por una instrucción, pude resolver mi error. Dio te bendiga.
ResponderEliminarBRO ... NO MODIFICASTE EL PROYECTO CON LA CONEXION A UNA BASE DE DATOS .. DONDE SE LE PUEDAN MANDAR PETICIONES ??
ResponderEliminarHola, bueno la verdad no lo he modificado, pero lo que debes hacer es descargar el .jar driver para MySQL y despues crear una clase que establezca la conexión y comunicación con la bd, en teoría no debería ser complicado ya que en la petición al socket puedes especificar que consulta necesitas por ejemplo:
ResponderEliminarpetición: traerUsuarios -> en la clase function traerUsuarios(){}....
Espero te ayude mi respuesta.
a la hora de descargarlo me aparece con errores... org
ResponderEliminarHola, ese error puede ser por la version de java, verifica si estas utilizando la ultima, en caso que si haces click derecho sobre el proyecto (en netbeans) y escoges la opción resolver problemas.
EliminarSe puede conectar una aplicación web con una aplicación de escritorio mediante socket la aplicación de escritorios seria como servidor y si es así como hacerlo
ResponderEliminarMuy buen Aporte para desarrolladores espero la aplicaion que se pueda conectar a un abase de datos.
ResponderEliminarHola amigo como haría para poder enviar 3 notas a un servidor y que este le devuelva al cliente si aprobo o no.
ResponderEliminarHola Jeison, muy buena app, como a manera de aprendizaje intento entrar en el diseño de las frameWorks, pero la versión no es compatible con la que uso... sabes algo al respecto? Greacias y de nuevo felicitaciones.
ResponderEliminares un poco tarde verdad jeje, pero lo puedes ver usando netbeans 7.0.1
Eliminar