FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Trabajo con sockets
Trabajo con sockets.
Hola a todos. Estoy realizando un aplicación mediante sockets, una especie de messenger, entre ordenadores de red. He visto algun ejemplo de aplicación cliente - servidor, basado en sockets en los ejemplos delphi. Tal y como està montado el ejemplo, el cliente siempre se conecta al servidor. Después de este paso los dos ya se pueden enviar mesages. El servidor siempre permanece a la escucha y solo puede enviar texto al cliente si este se ha connectado antes. Que pasa sí el servidor quiere enviar mensages al cliente, y este no se ha connectado. Como puedo montar el sistema. ¿Quizás en cada aplicación montar un cliente y un servidor para que se puedan enviar mensages reciprocamente? Ahora solo tengo un TSocketServer, en la aplicación Servidora y un TCLientSocket en la que hace de cliente. Os agradeceria vuestra ayuda. Agradeceria también, sí alguien sabe donde conseguir información en castellano dobre Sockets. Saludos y gracias. |
#2
|
||||
|
||||
1. No podras enviar mensajes del servidor al cliente, ya que el ServerSocket crea un arreglo con los clientes conectados (en la propiedad Connections creo, la memoria me falla), y si intentas acceder a una conexion (por su indice) no creada, lanzara una excepcion.
2. En el caso que planteas, podrias tener un tercer computador con el serversocket, al cual se conecten todos los ClientSockets, e idearte un protocolo de comunicacion con el servidor, de tal forma que el mismo pueda identificar de quien va el mensaje y hacia quien, ademas de mantener una lista de conexiones activas. Para esto, cada vez que se conecta/desconecta un cliente, puedes ir alimentando alguna tabla en memoria o archivo con las conexiones, el numero de la conexion, ip, persona que se conecta y cualquier otra info que creas pertinente. Claro, que si la comunicacion es solo entre dos computadores, puedes incluir un client y serversocket en cada extremo, y ya.
__________________
Héctor Geraldino Software Engineer |
#3
|
|||
|
|||
Hola Hector.
No habia pensado en la posibilidad que me comentas la probaré a ver sí puedo solucionar el tema. Gracias por la ayuda. Saludos. |
|
|
|