Socket [Résolu]

Signaler
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009
-
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009
-
salut j'éssais de fiare une petite application console sous vc++ qui permet à de machine de chater mais je n'arrive pas à faire du simultané.
ret=recv(client_sock,buffer,1024,0);
cette appel de fonction bloque mon programme et je suis à chaque fois oubligé d'attendre la réponse d'une machine avant de pouvoir envoyer mon message .j'aimerei pouvoir taper mon message même si le correspondant n'a pas envis de repondre tout de suit.

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Va voir les sources de aardman et les 2 dernieres de Arnotic, tu verras comment gerer avec un event. Bien entendu ce n'est pas console.

ciao...
BruNews, MVP VC++
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

lilington> tu peux faire du mutli-threading pour résoudre le problême...

DWORD _stdcall SetServer(LPVOID pv) {

 while(1) {

    char buffer[1024];
    ZeroMemory(buffer, sizeof(buffer));

   recv(sock, buffer, 1024, 0);
   printf("Your friend> %s\r\n", buffer);    
  }
}

int main() {

// instructions...

DWORD tid;
CreateThread(0, 0, SetServer, (LPVOID) 0, 0, &tid);

while(1) {
 
    char buffer[1024];
    ZeroMemory(buffer, sizeof(buffer));

    scanf("%s", buffer);
    send(sock, buffer, 1024, 0);
    printf("Toi> %s\r\n", buffer);
   }
}


Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
En plus du modele WSAEventSelect cité par BruNews, il y a aussi le modele select() qui pourrait t'aider.
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009

merci je vais tout tester