![]() |
Socket ID
for N := 0 to ServerSocket1.Socket.ActiveConnections-1 do
begin ServerSocket1.Socket.Connections[N].Close; // Con esto cierra todas las conexiones activas end; ServerSocket1.Socket.Connections[3].SendText('hola'); // Con esto envia la palabra "hola" a la conexion nº 3. Dentro del OnClientConnect (de ServerSocket1) 1º opcion: Socket.SendText('bienvenido'); // Esto envia una bienvenida al cliente conectado 2º opcion: ServerSocket1.Socket.Connections[?].SendText('bienvenido'); // Envia la bienvenida atraves del nº de identificación Vale, pues el problema es que ese Socket no me dice el nº de identificación (?) de la conexion que se ha conectado para poder enviarle texto utilizando la segunda opcion. ¿Alguien sabe como puedo obtener ese identificador? Gracias;) |
No existe ningun ID propiamente dicho, sino un arreglo con el numero de conexiones, asi que al conectarse cada cliente este deberia ser justamente el ultimo.
Seria algo como: ServerSocket1.Socket.Connections[Socket.ActiveConnections - 1].SendText('bienvenido'); En teoria, eh |
Cita:
|
Tendrias que mantener una tabla (en memoria o disco) con el listado de las conexiones y las posiciones de cada conexion en el arreglo, actualizandola en los eventos onClientConnect/Disconnect del ServerSocket.
O bien realizar un ciclo cada vez que quieras enviar el mensaje, identificando el ip de cada conexion y determinando si es o no la maquina a la que quieres enviar el mensaje, y proceder (mas sencillo, pero mucho mas costoso) |
La franja horaria es GMT +2. Ahora son las 02:16:44. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi