IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Probleme sur chat client serveur


Sujet :

Réseau C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Probleme sur chat client serveur
    bonjour
    j'essaye de programmer un chat entre un serveur et un ou plusieurs client
    voici le code du client

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <linux/types.h>
    #include <sys/socket.h>
    #include <netdb.h>
    #include <string.h>
    #define N 10
     
     
    //void ouverture_client(int sock);
     
     
     
     
    int main()
     
    {
    	char host[50];
     
    	int sock,lon;
    	struct sockaddr_in adsock;
    	struct hostent *hptr;
    	struct servent *sptr;
     
     
     
     
    	printf("machine ? \n");
    	scanf("%s",&host);
     
     
     
     
    	if ((hptr = gethostbyname(host)) == NULL)
    	{	
    		perror(">>Pb pour la recup des infos du host");
    		exit(1);
    		}
     
    		/*copie car/car des infos de hptr vers adsock*/
    		bcopy((char *)hptr->h_addr,
    		(char *) &adsock.sin_addr,
    		hptr->h_length);
    		adsock.sin_family = AF_INET;    /*ou hptr->h_addrtype; */
    		adsock.sin_port = htons(5000);
     
     
    		if ((sock = socket(AF_INET, SOCK_STREAM, 0))<0)
    		{
    			perror (">>Pb de creation de la socket");
    			exit(1);
    			}
     
    		/*tentative de connexion au serveur dont les infos sont dans adsock */
     
     
     
    		if ((connect(sock,(struct sockaddr_in*)&adsock, sizeof(adsock)))<0)
    		{
    			perror (">>Pb de connexion");
    			exit(1);
    			}
     
     
     
     
       char bufferRecv[50];
       char buffer[50];
        while(1)
        {
         printf("message ?\n");
         scanf("%s",&buffer); 
         int i,lon;
         send(sock, buffer, strlen(buffer),0);
     
         if(lon=recv(sock,bufferRecv, strlen(bufferRecv),0)>0)
             {
             //fflush(stdout);
             printf("Serveur > %s\n",bufferRecv);
     
             }
          else printf("erreur\n");
         } 
       //} 
    }
    le serveur:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <linux/types.h>
    #include <sys/socket.h>
    #include <netdb.h>
    #include <string.h>
    #define N 1000
    #define MAX 5
       int socks[MAX];
       int nb_connecte;  
    	void ouverture_serveur(int sock);
     
     
      main()
       {
     
     
           int server;       
           int sock;
           struct sockaddr_in sinserv;
           struct sockaddr_in sin;
           struct hostent *hptr;     
           sinserv.sin_family=AF_INET;
           sinserv.sin_addr.s_addr=INADDR_ANY;
           sinserv.sin_port=htons(5000);
     
     
           	 if ((sock=socket(AF_INET,SOCK_STREAM,0))<0)
    	  {
    	  	perror(">>Probleme de creation du socket");
    	  	exit(1);
    	  }
           bind(sock,(struct sockaddr*)&sinserv,sizeof(sinserv));
     
           listen(sock,10);
     
           //char buffer[N];
           int sinsize;
           //int err=0;
           nb_connecte = 0;
           pthread_t thread_serveur;
     
           while(1)
           {
               sinsize=sizeof(sin);
               if((server=accept(sock,(struct sockaddr*)&sin,&sinsize))>=0)
              {printf("%d\n",server);
               socks[nb_connecte]=server;
               nb_connecte++;
               pthread_create(&thread_serveur,  NULL, (void*)&ouverture_serveur,server);
     
     
               }
     
           }
     
       }
             void ouverture_serveur(int sock)
       {
       int b,tmp;
       printf("Client Connecté\n" );
       char buffer[50];
       int i;
       fflush(stdout);
        while(1)
         {
         for (i=0;i<=50;i++){
          buffer[i]= ' ';
          }
         if(tmp=recv(sock,buffer,strlen(buffer),0))
             {
             printf("Message reçu d'un client: ");
             printf("%s\n",buffer);
     
             for(b=0;b<nb_connecte;b++)
                     { 
                  fflush(stdout);                                                 
                  send(socks[b],buffer,strlen(buffer),0); 
                  printf("renvoi:  %s\n",buffer);
                    }
             }
          }
     
      }
    je veux que le serveur renvoie tout les message qu'il reçoit a tout les client connectées. Il le fait bien pour le premier message qu'il reçoit mais pas pour les suivant

    voila ce que j'ai sur l'ecran:
    cote serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     ./serveur
    4
    Client Connecté
    Message reçu d'un client: salut                                              
    renvoi:  salut                                              
    Message reçu d'un client: bonjour                                            
    renvoi:  bonjour
    et cote client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ./client
    machine ? 
    I121pc03       
    message ?
    salut
    Serveur > salut           
    message ?
    bonjour
    Serveur >
    j'arrvie pas a trouver pourquoi il ne renvoie que le premier message qu'il reçoit??

  2. #2
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         for (i=0;i<=50;i++){
          buffer[i]= ' ';
          }
    Ici tu dépasses de 1 ton buffer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     if(lon=recv(sock,bufferRecv, strlen(bufferRecv),0)>0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    recv(sock,buffer,strlen(buffer))
    Comment strlen peut fonctionner ? Il n' y a pas de \0 final.

    Ne pas confondre strlen() et sizeof

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par sobshak Voir le message
    bonjour
    j'essaye de programmer un chat entre un serveur et un ou plusieurs client

    je veux que le serveur renvoie tout les message qu'il reçoit a tout les client connectées. Il le fait bien pour le premier message qu'il reçoit mais pas pour les suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      char host[50];
     
    <...>
       scanf ("%s", &host);
    est faux, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      char host[50];
     
    <...>
       scanf ("%s", host);
    bcopy() n'est pas standard. Utiliser memcpy() (inverser les paramères 1 et 2).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((connect(sock,(struct sockaddr_in*)&adsock, sizeof(adsock)))<0)
    est incorrect. C'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((connect(sock,(struct sockaddr*)&adsock, sizeof(adsock)))<0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       int server;
    <...>
            pthread_create (&thread_serveur, NULL, (void *) &ouverture_serveur,
                             server);
    On ne peut pas passer un entier dans un pointeur. Ça n'a aucun sens.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       int server;
    <...>
            pthread_create (&thread_serveur, NULL, (void *) &ouverture_serveur,
                             &server);
    et dans le thread :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int server =*((int*) data);
    (mais je préfère passer les paramètres dans une structure et passer l'adresse de la structure, c'est plus clair et beaucoup plus puissant.)

    Il faut corriger la gestion des transferts de données selon ce principe :

    http://emmanuel-delahaye.developpez....eaux.htm#texte

    ceci marchouille (simulateur sous Windows) :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
     
    #ifdef __cplusplus
    #error Be sure you are using a C compiler...
    #endif
     
    #if defined (WIN32) || defined (_WIN32)
     
    #include <winsock2.h>
     
    #elif defined (linux) || defined (_POSIX_VERSION) || defined (_POSIX2_C_VERSION)\
     || defined (_XOPEN_VERSION)
     
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <unistd.h>             /* close */
     
    #define INVALID_SOCKET -1
    #define SOCKET_ERROR -1
     
    #define closesocket(s) close (s)
    typedef int SOCKET;
    typedef struct sockaddr_in SOCKADDR_IN;
    typedef struct sockaddr SOCKADDR;
     
    #else
    #error not defined for this platform
    #endif
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <pthread.h>
     
    #include <string.h>
     
    /* macros ============================================================== */
    #define PORT 5000
     
    #define CLI_N 10
    #define SRV_N 1000
    #define MAX 5
     
    /* constants =========================================================== */
    /* types =============================================================== */
    /* structures ========================================================== */
    /* private data ======================================================== */
    /* private functions =================================================== */
    /* void ouverture_client(int sock); */
     
    static void fclean (char *line, FILE * fp)
    {
       char *p = strchr (line, '\n');
       if (p != NULL)
       {
          *p = 0;
       }
       else
       {
          int c;
          while ((c = fgetc (fp)) != '\n' && c != EOF)
          {
          }
       }
    }
     
    static void sim_client (char const *id)
    {
       SOCKET sock = socket (AF_INET, SOCK_STREAM, 0);
       if (sock == INVALID_SOCKET)
       {
          perror (">>Pb de creation de la socket");
          exit (EXIT_FAILURE);
       }
     
       /*tentative de connexion au serveur dont les infos sont dans adsock */
     
       SOCKADDR_IN adsock;
    #if 0
       {
          char host[50];
          struct hostent *hptr;
     
          printf ("machine ? \n");
          fgets (host, sizeof host, stdin);
          fclean (hostn stdin);
     
          if ((hptr = gethostbyname (host)) == NULL)
          {
             perror (">>Pb pour la recup des infos du host");
             exit (1);
          }
     
          /*copie car/car des infos de hptr vers adsock */
          memcpy ((char *) &adsock.sin_addr, (char *) hptr->h_addr,
                  hptr->h_length);
       }
    #else
       adsock.sin_addr.s_addr = inet_addr ("127.0.0.1");
     
    #endif
       adsock.sin_family = AF_INET;
       adsock.sin_port = htons (PORT);
       if (connect (sock, (SOCKADDR *) & adsock, sizeof (adsock)) == SOCKET_ERROR)
       {
          perror (">>Pb de connexion");
          exit (EXIT_FAILURE);
       }
       {
          int end = 0;
          while (!end)
          {
             char buffer[50];
             printf ("%s> message ?\n", id);
             fgets (buffer, sizeof buffer, stdin);
             fclean (buffer, stdin);
     
             send (sock, buffer, strlen (buffer), 0);
             {
                char bufferRecv[50];
                int lon = recv (sock, bufferRecv, sizeof bufferRecv - 1, 0);
                if (lon > 0)
                {
                   bufferRecv[lon] = 0;
                   printf ("%s < Serveur > %s\n", id, bufferRecv);
                   if (strcmp (bufferRecv, "quit") == 0)
                   {
                      end = 1;
                   }
                }
                else
                {
                   printf ("%s> erreur\n", id);
                   end = 1;
                }
             }
          }
       }
    }
     
    struct clients
    {
       SOCKET socks[MAX];
       int nb_connecte;
    };
     
    struct data
    {
       SOCKET sock;
       struct clients *p_cli;
    };
     
    static void *srv_client (void *data)
    {
       struct data *p_data = data;
       if (p_data != NULL)
       {
          int end = 0;
          printf ("SRV: Client Connecté\n");
     
          while (!end)
          {
             char buffer[50];
             int n = recv (p_data->sock, buffer, sizeof buffer - 1, 0);
             if (n > 0)
             {
                buffer[n] = 0;
     
                printf ("SRV: Message reçu d'un client:\n");
                printf ("'%s'\n", buffer);
                {
                   int b;
                   for (b = 0; b < p_data->p_cli->nb_connecte; b++)
                   {
                      send (p_data->p_cli->socks[b], buffer, strlen (buffer), 0);
                      printf ("SRV: renvoi:  '%s'\n", buffer);
                   }
                   if (strcmp (buffer, "quit") == 0)
                   {
                      end = 1;
                   }
                }
             }
             else
             {
                end = 1;
             }
          }
          printf ("SRV: client %d deconnecte\n", p_data->sock);
          closesocket (p_data->sock), p_data->sock = INVALID_SOCKET;
     
       }
       return NULL;
    }
     
    static int sim_server (void)
    {
       SOCKET sock = socket (AF_INET, SOCK_STREAM, 0);
       if (sock == INVALID_SOCKET)
       {
          perror ("SRV: socket");
          exit (EXIT_FAILURE);
       }
     
       {
          struct sockaddr_in sinserv;
          sinserv.sin_family = AF_INET;
          sinserv.sin_addr.s_addr = INADDR_ANY;
          sinserv.sin_port = htons (PORT);
     
          if (bind (sock, (struct sockaddr *) &sinserv, sizeof (sinserv)) < 0)
          {
             perror ("SRV: bind");
             exit (EXIT_FAILURE);
          }
     
          if (listen (sock, 2) < 0)
          {
             perror ("SRV: listen");
             exit (EXIT_FAILURE);
          }
     
          {
             struct clients clients = { {0}, 0 };
             pthread_t thread_client;
     
             while (1)
             {
                struct sockaddr_in sin;
                int sinsize = sizeof (sin);
                SOCKET csock = accept (sock, (struct sockaddr *) &sin, &sinsize);
                if (csock != INVALID_SOCKET)
                {
                   struct data data = { 0, 0 };
                   data.p_cli = &clients;
                   data.sock = csock;
     
                   printf ("SRV : %d\n", csock);
     
                   /* mecanisme sommaire. Manque la gestion de la suppression... */
                   clients.socks[clients.nb_connecte] = csock;
                   clients.nb_connecte++;
                   pthread_create (&thread_client, NULL, srv_client, &data);
     
                }
             }
          }
       }
    }
     
    static void *th_server (void *data)
    {
       sim_server ();
       (void) data;
       return NULL;
    }
    static void *th_client (void *data)
    {
       sim_client (data);
       return NULL;
    }
     
    static void sim (void)
    {
       pthread_t thread_server;
       pthread_t thread_client_A;
       pthread_t thread_client_B;
     
       pthread_create (&thread_server, NULL, th_server, NULL);
       pthread_create (&thread_client_A, NULL, th_client, (void *) "A");
       pthread_create (&thread_client_B, NULL, th_client, (void *) "B");
     
       pthread_join (thread_server, NULL);
       pthread_join (thread_client_A, NULL);
       pthread_join (thread_client_B, NULL);
    }
     
    /* entry point ========================================================= */
     
    /* ---------------------------------------------------------------------
       --------------------------------------------------------------------- */
    int main (void)
    {
       int ret;
     
    #if defined (WIN32) || defined (_WIN32)
       WSADATA wsa_data;
       int err = WSAStartup (MAKEWORD (2, 2), &wsa_data);
     
       if (!err)
       {
          puts ("WIN: winsock2: OK");
    #else
       int err;
    #endif
     
       /* to be continued ... */
       sim ();
    #if defined (WIN32) || defined (_WIN32)
       WSACleanup ();
    }
    #endif
     
    if (err)
    {
       ret = EXIT_FAILURE;
    }
    else
    {
       ret = EXIT_SUCCESS;
    }
     
    return ret;
    }
    Il faudrait faire une version plus réelle.
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    merci pour l'aide
    j'ai repri le code du client et il me renvoie bien tout les message qu'il reçoit
    cependant j'ai un autre probleme lie au buffer d'envoie et de reception

    code client modifié la premiere partie est la meme que dans le post precedent(avec les correction);
    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
    20
    21
    22
    23
    int lon,i,j,t;
     char buffer[50];
     char bufferRecv[50];
    while(1)
     {
     printf("message?\n");
     scanf("%s",buffer);
     t=sizeof(buffer);
     buffer[t]='\0';
     
     send(sock,buffer, strlen(buffer),0);
     
     if(lon=read(sock,bufferRecv,sizeof(bufferRecv))>0)
             {
     
             printf("Serveur > %s\n",bufferRecv);
             } 
      for (j=0;j<50;j++){
          buffer[j]= ' ';
          }       
      }       
      close(sock);  
     }
    voici un exemple d'execution pour montrer le probleme:
    cote client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ./client
    machine ? 
    I121pc03
    message?
    salut
    Serveur > salut
    message?
    ok
    Serveur > oklut
    message?
    cote serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     ./serveur
    4
    Client Connecté
    Message reçu d'un client: salut
    renvoi:  salut
    Message reçu d'un client: oklut
    renvoi:  oklut
    il semble que les ancien message restent dans le buffer j'arrive pas a trouver pourquoi!!??

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par sobshak Voir le message
    code client modifié la premiere partie est la meme que dans le post precedent(avec les correction);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <...>
     t=sizeof(buffer);
     buffer[t]='\0';
    Inutile. déjà fait par scanf()...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if(lon=read(sock,bufferRecv,sizeof(bufferRecv))>0)
             {
     
             printf("Serveur > %s\n",bufferRecv);
             }
    Problème récurrent. Bien lire la doc de read() ... D'autre part, on a transmis une séquence de caractères sans 0 final. Il faut donc l'ajouter à la réception...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       lon = read (sock, bufferRecv, sizeof bufferRecv - 1);
       if (lon > 0)
       {
          bufferRecv[lon] = 0;
          printf("Serveur > %s\n",bufferRecv);
       }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      for (j=0;j<50;j++){
          buffer[j]= ' ';
          }
    Inutile.
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    merci pour l'aide finalement apres beaucoup de bidouillage j'ai reussit a le faire marcher.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    salut pourrai tu poster ta solution s'il te plait merci d'avance.

    Pour pouvoir se donner une idée et travailler un peut dessus

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chat client-serveur : conseils sur le langage à utiliser
    Par Invité dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 28/10/2012, 13h30
  2. [C] Probleme avec socket client-serveur TCP
    Par LinuxUser dans le forum Réseau
    Réponses: 33
    Dernier message: 15/05/2007, 22h26
  3. [C#] Probleme de connection client/serveur
    Par Myfred dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/10/2006, 19h29
  4. probleme d'application client-serveur en vb6 et SQL server
    Par maxtin dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/08/2006, 14h19
  5. Conseils sur Application client/serveur
    Par MICHELBORLAND dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/05/2006, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo