Ver Mensaje Individual
  #13  
Antiguo 21-05-2004
Amilius Amilius is offline
No confirmado
 
Registrado: ene 2004
Posts: 138
Reputación: 0
Amilius Va por buen camino
Cita:
Empezado por Sr_Sombrero
Cuando un cliente se desconecta solo se su IP (la cual veo en el evento OnDisconnect) pero no se el número de conexión que tenía en el ServerSocket, por eso no puedo reflejarlo en la listView (si hay 2 IP iguales).
Si hay alguna forma de saber esto tendría el 80% del problema solucionado.

Bueno... seguiré pensando y abierto a sugerencias
Imagínate que quieres mantener varias conexiones por IP y además quieres mandar un mensaje a una determinada conexión, tan rápidamente como acceder a una lista de referencias a las conexiones. Ese era mi problema con un juego en línea que hice. Lo solucioné lo más directamente posible, agregue en el código fuente "sockets.pas", en el constructor de ese objeto un entero que me serviría como identificador (lo inicializo en "NoIdentificado"=-1). De esa forma al momento de iniciar la conexión le asigno un número identificador y además tengo mi lista de referencias a conexiones, en la posición del indentificador asigno la referencia a la conexion. Con ambas cosas tengo acceso total a cada conexión sin importar el IP. siempre se con cual conexion estoy trabajando y siempre puedo mandar un mensaje a la conexion que quiera. Eso me ayudo mucho también a relacionar la información de cada jugador con su conexión y viceversa.

Una cosa más: (Pero creo que ya te diste cuenta)

Si usas el "sockets.pas" cuando envías:

"Hola" y luego "Mundo" pueden recibir: "Hola" y luego "Mundo", "HolaMundo" y también "Ho", "laM","un" y finalmente "do". El 1er caso es típico cuando envías los mensajes con cierto tiempo ellos. El 2do caso cuando los envías uno detrás de otro casi inmediatamente y el 3er caso cuando el canal de transmisión está saturado pero generalmente esa fragmentación al recibir el mensaje ocurrirá con mensajes más largos.
Responder Con Cita