Bonjour,

Il y a une chose que je ne comprends pas, je me tourne vers ce forum pour obtenir quelques explications.
Je tente de faire fonctionner une application client/serveur de cette fa�on :
une boucle accept c�t� serveur. Quand une connexion est entrante : un thread est lanc� afin de g�rer les communications entre serveur/client. (il n'y a que des caract�res � �changer, c'est quasi un chat)

Dans ce thread, ben j'aimerais pouvoir lancer une b�te boucle qui �crive les messages re�us du serveur en m�me temps qu'il lise ce que le client �crit potentiellement (bidirectionnel, quoi).
Mais voil� mon souci :

La boucle fait en gros un
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
int num;
while(1)
    fgets(buff,MAXSIZE-1,stdin);
    if ((send(sockfd, buff, strlen(buff),0))== -1) {
        fprintf(stderr, "Erreur send\n");
        close(sockfd);
        exit(1);
    }
    else {
        printf("Message envoyé : %s\n", buff);
            num = recv(sockfd, buff, sizeof(buff),0);
            if ( num <= 0 ){
                    printf("Connexion fermée\n");
                    break;
            }
            buff[num] = '\0';
            printf("Message reçu du serveur -  %s\n", buff);
       }
qui... ben qui est une structure qui a l'air assez typique pour r�aliser cet �change d'apr�s mes recherches sur le net.

Mais probl�me : lorsque la connexion est cr��e, le serveur envoie un message, qui n'est affich� qu'une fois que le client a envoy� une phrase.
Comment puis-je faire pour que ce message soit envoy� sans attendre cette action, et comment faire de fa�on g�n�rale pour effectuer... ben les deux actions simultan�ment ? Je pense qu'il y a une chose que je n'ai pas comprise... (au moins ^^)

(pour ma d�fense, j'avais d�j� r�alis� une appli client/serveur, mais celle-ci fonctionnait avec un select. Je sais, ce serait plus simple, mais voil�, je ne peux pas changer de m�thode, je dois faire tourner cette appli avec des threads)

Si quelqu'un avait la patience de m'expliquer... Merci d'avance



edit : En fait, j'ai pens� apr�s coup... Que je me compliquait la vie pour rien, �tant donn� que le c�t� "multithread", c'est seulement pour le serveur. Le clientpeut tout � fait �tre sur un select ou un poll... Mon probl�me est donc r�gl�.
Merci quand m�me ^^