 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
koes Lt


Registrado: 19 Jul 2003Mensajes: 77Ubicación: A Laracha (A Coruña)
|
Publicado: Mar 13 Ene, 2004 6:37 pm Asunto: Una de sockets |
|
|
Tengo un problemilla con los sockets, en concreto lo que queria saber es si alguien sabe lo que envio desde un TClientSocket a un TServerSocket escribirlo en un fichero, sabiendo que existen varios TClientSockets que envian al TServerSocket y lo que envia cada uno debe ir en distintos ficheros.
Espero que a alguien se le ocurra alguna forma de hacerlo.
Gracias. |
|
| Volver arriba |
|
 |
Eddie Cdt


Registrado: 28 Dic 2003Mensajes: 11Ubicación: España
|
Publicado: Mar 13 Ene, 2004 8:29 pm Asunto: |
|
|
Bueno yo hice algo parecido en el servidor de un messenger cutre que estoy haciendo.
tienes dos posibilidades, crearte un array de TCustomWinSocket, o sea de sockets de windows, y en el evento OnRead del TServerSocket comprobar con un bucle si el Socket (Socket viene en los parametros del evento) recibido es el mismo que el que estas buscando en el array.
de todas formas finalmente lo solucione más facilmente, simplemente puse un codigo de identificacion en el cliente (vamos un username) y cada vez que el cliente escribe pone primero su id. Para escribir del server al cliente cree un array (bueno en realidad una pila que es más cómodo) para asociar un determinado id con un Socket.
espero q te sirva de algo  _________________ Time is up, it couldn't last, but there's more things i'd like to do, i'm coming back, to try again, some day maybe i'll wait till then...
No More Lies!! |
|
| Volver arriba |
|
 |
|VVV| Invitado
|
Publicado: Mie 31 Mar, 2004 11:12 am Asunto: |
|
|
Hace un tiempo tuve una conversacion con nuestro compañero _Leo y me resolvio el problema de la mejor manera posible!! (Como siempre)
El truco esta en el puntero void *Data que contiene cada Socket.
Al conectar un cliente al servidor generamos el objeto que queramos y lo asignamos a este puntero. Asi en cada lectura del Socket podemos acceder a nuestro objeto manejador sin ninguna busqueda en ningun array ni nada.
Por ejemplo:
en el evento on Connect:
MiObjet =new TMiObjetc();
Socket->Data=MiObjetc;
Para recuperar el objeto perteneciente a ese socket por ejemplo en el evento on read, hariamos al principio:
TMiObjet *obj=reinterpret_cast<TMiObjet *>(Socket->Data);
// A partir de aqui manejamos obj, que es el objeto asociado a ese socket.
Un saludo a todos, y espero que os sirva tanto como me sirvio a mi. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|