Mettre un argument dans un thread...

ChrOnOs83 Messages postés 32 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 19 juin 2007 - 16 juil. 2004 à 13:45
ChrOnOs83 Messages postés 32 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 19 juin 2007 - 16 juil. 2004 à 15:39
Bonjour à tous,
J'ai de nouveau un petit probleme sur le quel je bloque...
En faite je suis entrain de faire un chat multi-clients. Je passe par des sockets synchrones histoire qu'il n'y ai pas de pertes mais sa me pose un petit peut probleme vu que le synchrone ne gere pas le multiclient.
Bref j'ai fais un thread qui recois les messages en fonction d'un nouveau socket créé dans un tableau de socket mais le probleme est qu'un tableau est limité. Et meme si il ne l'etait pas il commencerai a prendre beaucoup de place au bout de quelque heure...
bref voici mon code sa sera probablement plus explicatif :

int compteur_serveur = 0 ;
SOCKET sock;
SOCKET csock[50];

DWORD WINAPI ServeurProc(LPVOID lpParam)
{

DWORD ThreadReception;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
int sinsize = sizeof(csin);
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_family = AF_INET;
sin.sin_port = htons(666);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock,0);
while(1)
{
compteur_serveur++;
csock[compteur_serveur] = accept(sock, (SOCKADDR *)&csin, &sinsize);
CreateThread(NULL,NULL,ReceptionnerMessage,NULL,NULL,&ThreadReception);
Sleep(1000);
}
return 0;
}

DWORD WINAPI ReceptionnerMessage(LPVOID lpParam)
{
char message_recu[500];
int err = 0;
int i;
i = compteur_serveur;
strcpy(message_recu,"");
while(err>-1)
{
if (strcmp(message_recu,"")!=0)
{
traiter(message_recu);
}
err = recv(csock[i],message_recu,500,0);
}
return 0;
}

Ca serai tellement plus simple si je pouvai passer csock en argument du thread ReceptionMessage :-)...
Merci d'avance pour toutes reponses!!
@+

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 juil. 2004 à 13:53
Tu passes ce que tu veux a CreateThread dans le 4 eme param, valeur directe ou pointeur, pas de probleme.

ciao...
BruNews, Admin CS, MVP Visual C++
0
ChrOnOs83 Messages postés 32 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 19 juin 2007
16 juil. 2004 à 15:39
Merci bcp BruNewz !! une fois de plus tu m'a bien aidé :-D
@+ et bonne continuation
0
Rejoignez-nous