PDA

Ver la Versión Completa : Socket ID


Silver
26-08-2003, 22:26:09
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
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)