Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Socket ID (https://www.clubdelphi.com/foros/showthread.php?t=3189)

Silver 26-08-2003 22:26:09

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;)

__hector 27-08-2003 15:05:14

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

dantemol 02-09-2003 16:51:54

Cita:

Posteado originalmente por hector
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

Disculpa, pero en este caso el mensaje sería enviado al último en conectarse. Pero si la idea es enviar un mensaje a cualquiera de los clientes conectados cuyo orden de conexión varia ya sea porque se desconectó en algún momento y se volvió a conectar, como sería? Gracias.

__hector 02-09-2003 22:57:46

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 17:14:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi