PDA

Ver la Versión Completa : Winsocks y Delphi


BeN
06-12-2004, 01:04:38
Saludos, llevo un par de dias buscando informacion por todos lados y no he podido encontrar como realizar esto:

Necesito diseñar una aplicacion servidor que este escuchando o en espera a que se conecte otra aplicacion, (aplicacion cliente) la cual se ejecute desde una pc diferente en la misma red.

Estoy usando delphi 6 y ClientSocket y ServerSocket.. es facil realizar la conexion con esos objetos.. pero que pasa si mi clientsocket no sabe la direccion ip ni el puerto del serversocket.. quiero qe lo detecte en la red. Que mi aplicacion cliente busque por la red y vea si mi aplicacion server se esta ejecutando y de ser asi se conecte a ella.. obviamente sin saber ni su ip, ni nombre de maquina, ni puerto ni nada.

Se puede.. alguien me hecha una mano,, Gracias desde ya

BeN
06-12-2004, 01:35:45
por poner un ejemplo.. algo asi como los juegos multiplayer en red (Como Age of empires o Medal of Honor).. se crea un server y las demas pcs lo encuentran y se conectan a el...

Mick
06-12-2004, 14:51:56
La forma mas sencilla de hacer lo que pides es utilizar el protocolo UDP para localizar el servidor dentro de la LAN en lugar de TCP.
El puerto no lo podras detectar asi que tienes que decidir que la aplicacion servidor escuche siempre en un puerto fijo, digamos por ejemplo el puerto 6000.
Despues la aplicacion cliente envia un paquete UDP de "Broadcast" es decir destinado a todos los equipos no solo a uno, al puerto 6000, y se queda a la escucha en el mismo puerto (aunque podria ser otro distinto).
El servidor recibe esa peticion y responde con otro paquete con la informacion de conexion del servidor, este paquete de respuesta puede ser de broadcast o no, ya que el servidor ya sabe por la ip de origen del paquete, a que ordenador debe enviar la respuesta.

Solo hay que tener en cuenta que el cliente actuara como servidor durante un momento, ya que se tiene que quedar a la espera de la respuesta en un puerto, si hay algun firewall instalado en el ordenador cliente es posible que bloquee la respuesta, en ese caso habria que configurar el firewall para que deje pasar esas respuestas.

Saludos

madman
30-12-2004, 09:01:45
Jurrrr...
Miren que bien sirve el buscador de ClubDelphi
http://www.clubdelphi.com/foros/showthread.php?t=1603&highlight=localizar

Deberian usarlo :D :p