Programación General > C/C++
Hilos en C++ Borland con APi
witchyfairy:
Hola estoy haciendo un programa tipo messenger en c++ borland pero me lo pidieron con la api en donde a cada cliente le asigno un hilo le paso una estructura de la siguietne manera:
struct IP nueva_IP;
lect_con = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)Hilo_del_cliente,(void *) &nuevaIP,0,&Thread_lect);
en la funcion del hilo hago esto:
void *Hilo_del_cliente(void *nueva_IP){
//este es el cast
void *estructura=(void*)nueva_IP;
La cosa es que necesito usar los datos de la estructura pero no se como acceder a los datos de esta alguien podria ayudarme pro favor :wub:
Nota: Disculpen si mi post esta mal pero es la primera vez que uso un foro y no he leido bien las reglas proque me interesabamas exponer mi problema pero ahora voy a leer gracias
Eternal Idol:
El casting esta mal, en realidad no hay casting nueva_IP ya es un void *.
Mejor asi:
--- Código: C++ ---DWORD WINAPI Hilo_del_cliente(LPVOID lpParameter){ IP *nueva_IP = (IP*)lpParameter;
witchyfairy:
--- Cita de: "Eternal Idol" ---El casting esta mal, en realidad no hay casting nueva_IP ya es un void *.
Mejor asi:
--- Código: C++ ---DWORD WINAPI Hilo_del_cliente(LPVOID lpParameter){ IP *nueva_IP = (IP*)lpParameter;
--- Fin de la cita ---
La cosa es que cuando pongo :
--- Código: C++ --- void *Hilo_del_cliente(void *nueva_IP){ struct IP *nuevo = (IP*)nueva_IP; [/quote]
me sale un error de sintaxis y no me deja avanzar!!!
Eternal Idol:
¿Que error? Copialo y pegalo por favor. ¿Y el codigo que yo puse te da error?
witchyfairy:
--- Código: C++ ---struct IP{ in_addr IPDireccion; unsigned short IPPuerto; SOCKET IPSocket; }IP; void AcceptoConexiones(SOCKET Socket) SOCKET SockConexion; struct IP nuevaIP; int tamano = sizeof(DireccionLocal),crear; while(1){ SockConexion = accept (Socket, (struct sockaddr*)&DireccionLocal,&tamano); mnsj = mnsj + " nConexion entrante desde:n" + (String)inet_ntoa(DireccionLocal.sin_addr) + (String)(DireccionLocal.sin_port); nuevaIP.IPDireccion = DireccionLocal.sin_addr; //aqui lleno los datos de mi estructura IP nuevaIP.IPPuerto = DireccionLocal.sin_port; nuevaIP.IPSocket = SockConexion; lect_con = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)Hilo_del_cliente,(void *)&nuevaIP,0,&Thread_lect);//aqui ya hize el cast de estructura a void } }//----------------------------------------------------------------------------void *Hilo_del_cliente(void *nuevaIP){ //aqui recibo mi estructura como void struct IP *nueva = (IP*)nuevaIP; //aqui me da error (E2188:Error syntax) ShowMessage("Entre al hilo que atiende al cada cliente"); SOCKET RemoteSocket = ((IP*)nuevaIP)->IPSocket; //Y cuando intento entrar a los datos de la estructura tambien me da error (E2188:Error syntax) unsigned short portclient = ((*IP)nuevaIP)->IPPuerto; Espero me entiendas, y muchas gracias por responderme :beer:
Navegación
[#] Página Siguiente
Ir a la versión completa