begin process at 2012 02 10 16:11:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problème serveur TCP en C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème serveur TCP en C

dimanche 9 avril 2006 à 15:32:40 | Problème serveur TCP en C

lenneth666

BOnjour j'ai un petit problème.

Je voulais faire en sorte que mon serveur puisse gérer la réception et l'envoi de message en parralèle, mais celà ne marche pas et je ne comprend pas pk.
qq'un pourrai t'il m'aider ? je vous fait un CC d'un bout dmon code

il n'y a que la lecture pour l'instant car je ne vois pas encore comment je vai faire pour l'ecriture

    client = accept(s,(struct sockaddr *) &pre,&longueur) ;
            if(client < 0)
            erreur("erreur acceptation client");

fd_set fread;
    fd_set fwrite;

    while(1)
    {
        FD_ZERO(&fread);
        FD_ZERO(&fwrite);
        FD_SET(s,&fread);
        FD_SET(s,&fwrite);
        FD_SET(0,&fread);
        FD_SET(0,&fwrite);

        if( (sel=select(s+1,&fread,&fwrite,NULL,NULL)) <0)
            erreur("erreur select\n");
           
           
        buf=(char *)malloc(256);
        i=0;
        longueur = sizeof(struct sockaddr_in);
        char *msg;
       
//        client = accept(s,(struct sockaddr *) &pre,&longueur) ;

        if(FD_ISSET(client,&fread))
        {
                   rec=read(client,buf,256);
       
                    if(strncmp(buf,"/fin",4) == 0)
                    {
                        printf("L'utilisateur %s c'est déconnecté\n",inet_ntoa(pre.sin_addr));
                        close(client);
                    }
                    else
                    {
                        printf("le Buffer est : %s\n",buf);
                    }
           
        i=strlen(buf);
        msg = (char *)malloc(i+1);
        msg[i]='\0';
        strncpy(msg,buf,i);
        printf("message reçu : %s\n",msg);
        }
      


merci d'avance

dimanche 9 avril 2006 à 23:05:42 | Re : Problème serveur TCP en C

bigbourin

Je sais pas si j'ais tres bien compris ton problemme mais bon premièrement tu peut a la fois écrire et lire sur un socket par exemeple en alternance (envoi / reception) t'envoi un packet dans un sens puis un dans l'autre pour le faire tout en meme temps je pense que c'est que possible en utilisant plusieurs sockets. tu a la fonction select qui permet de recevoir les connection tout en transmetant des données. Je ne l'ais jamais utiliser faudrait que tu te renseigne mieu mais tu la connais surement deja. voila je sais pas si je t'aide bcp mais bon ... faut toujour essayer ^^
lundi 10 avril 2006 à 13:13:51 | Re : Problème serveur TCP en C

lenneth666

bah si j'ai demandé de l'aide a cause de la commande select c'est que je la connait pas ^^



mardi 11 avril 2006 à 02:10:40 | Re : Problème serveur TCP en C

bigbourin

Je connais pas la fonction select je vais te copier une doc que j'ais : "La fonction select() permet d'écouter sur plusieurs socket descriptors en même temps et d'être réveillé par le premier qui devient actif" prototype : => int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exeptfds, struct timeval *timeout); Je n'ais pas plus d'information apparement elle pourait repondre a ton problemme mais je ne peut pas t'expliquer comment on l'utilise. désolé.


Cette discussion est classée dans : set, client, buf, fd, fread


Répondre à ce message

Sujets en rapport avec ce message

Fread(); [ par Samy926 ] Bonjour , J' essaie pour le moment d' apprendre à déplacer un fichier quelconque vers un nouveau répertoire.#include #include #include void main(){ PROBLEME CLIENT SERVER [ par zzzzzz ] Mon client marche c sur et il envoie bien abcd mais monserver marche po je suis debutant en server socket... :(je sais pas comment faire en sorte que arreter un select bloquand depuis un autre thread [ par cosmobob ] salut,sous windows, j'ai pas de probleme, mais sous linux, quel est le moyen pour qu'un thread qui bloque sur un select bloquant se débloque? shutdown Probleme avec les sockets [ par Scooper ] Bonjour a tous, j'ai un soucis avec l'utilisation des sockets sous UNIX AIX v3.25.J'ai 2 programmes : 1 client et 1 serveur.Ces 2 programmes fonctionn Client/Serveur Linux [ par imothepe20012002 ] Salut a tous ! Voila, j'ai un tp a rendre, je dois faire sous linux (terminale) un bibliothéque en ligne. Je m'explique, un serveur posséde des files P2P avec WSAasyncselect [ par JoebarGlut ] Salut,je suis en train de realiser un petit systeme p2p et pour ca j'ai un serveur dedié DS, un client C1 et un client C2 qui ont le meme code.C1 et C select, FD_SET, FD_ISSET, FD_CLR sous windows ? [ par RV2931 ] Bonjour,je suis en train d'essayer de réutiliser une librairie mais dans certains fichiers, ils utilisent ces fonctions "select, FD_SET, FD_ISSET, FD_ un probleme avec biosdisk [ par goast_tu ] Salut! J'essai d'ecrir un petit programme qui permet de lire un secteur d'un disque. J'utilise la fonction biosdisk. Il n'y a aucun probleme avec les FD_READ [ par argali ] Bonjour,J'ai un probleme avec FD_READ qui n'est pas appele lorsque mon client envoie un message au serveur, FD_WRITE marche par contre et le serveur p Entree std sous Windows [ par mgra ] Bonjour, Dans un des mes programmes, je dois surveiller un ensemble de descripteurs (plusieurs sockets et l'entrée std). J'initialise donc le tout


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,536 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales