Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Una de sockets

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Una de sockets Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

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 Very Happy
_________________
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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.