Operation socket on non socket

Résolu
let_me_in
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007
- 18 juin 2007 à 20:55
let_me_in
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007
- 18 juin 2007 à 23:11
salut tout le monde,
voici mon code :
client:
      #include 
      #include 
      #include 
      #include 
      #include <stdlib.h>
      #include <errno.h>	
     #include <string.h>	
      #include <stdio.h>

      #define MAX_SEND 100

      int main()

      {

        int socket_connect, sockaddr_len;

        struct sockaddr_in sockaddr_connect,merde;

        char buffer[MAX_SEND];

        sockaddr_connect.sin_family = AF_INET;

        sockaddr_connect.sin_addr.s_addr = inet_addr("127.0.0.1");

        sockaddr_connect.sin_port = htons(6668);

sockaddr_connect.sin_zero[8]=0;

       
if(socket_connect = socket(AF_INET, SOCK_STREAM, 0) < 0)

        {

           printf("Socket creation errror !\n" );

           return EXIT_FAILURE;

        }

       printf("socket=%d\n",socket_connect);

        if(connect(socket_connect, (struct sockaddr*)&amp;sockaddr_connect, sizeof(sockaddr_connect)) < 0)

        {

           printf("Socket connection error !\n" );
   perror("erreur");

           return EXIT_FAILURE;

        }

       

        while(1)

        {

           printf("send>" );

           scanf("%s", &amp;buffer);

           write(socket_connect, buffer, MAX_SEND);

        }

       

        close(socket_connect);

        return 0;

      } 


serveur:
    #include 
    #include 
    #include 
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <errno.h>	

    #define MAX_RECEPT 100
   
   

     int main(int argc, char* argv[])

      {

        if(argc < 2)

        {
           printf("Parameters error !\n" );
           return EXIT_FAILURE;
        }
        int socket_server, socket_client, server_len, client_len;
        struct sockaddr_in sockaddr_server, sockaddr_client;
        char buffer[MAX_RECEPT];
char buff[50];
        time_t date;
        FILE* f = fopen(argv[1], "a" );
        if((socket_server = socket(AF_INET, SOCK_STREAM, 0)) < 0)
          {
           printf("Socket creation error !\n" );
           return EXIT_FAILURE;
         }
        sockaddr_server.sin_family = AF_INET;
        sockaddr_server.sin_port = htons(6668);
        sockaddr_server.sin_addr.s_addr = INADDR_ANY;
        server_len = sizeof(sockaddr_server);
        client_len = sizeof(sockaddr_client);
        if(bind(socket_server, (struct sockaddr*)&amp;sockaddr_server, server_len) < 0)
        {

           printf("Socket bind error !\n" );
   printf("%d\n",errno);
  perror("erreur :");

           return EXIT_FAILURE;

        }

        if(listen(socket_server, 10) < 0)

        {

           printf("Socket listen error !\n" );

           return EXIT_FAILURE;

        }



        printf("[~]Waiting connection... \n" );

        socket_client = accept(socket_server, (struct sockaddr*)&amp;sockaddr_client, &amp;client_len);

        printf("[~]Established connection !\n" );

     

        time(&amp;date);

        fprintf(f, "[!]Established connection at %s\n", ctime(&amp;date));
      

        while(1)

        {

           if(read(socket_client, &amp;buffer, MAX_RECEPT) < 0)

           {

              printf("Socket read error !" );

              return EXIT_FAILURE;

           }  

           

           printf("From client : %s\n\n", buffer);  

           fprintf(f, "From client : %s\n", buffer);  

        }

           

        close(socket_client);

        printf("Saving in %s\n", argv[1]);

       

        return 0;

      } 


le serveur se lance bel et bien, mais le client me retourne cette erreur, et connect retourne 0 (j'ai lu quelque part que ceci n'est pas un probleme du fait que c'est >0).

une idee la dessus

merci d'avance.</errno.h></time.h></stdio.h></stdlib.h></stdio.h></string.h></errno.h></stdlib.h>
A voir également:

4 réponses

cs_aardman
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
18 juin 2007 à 22:59
Salut,
if(socket_connect = socket(AF_INET, SOCK_STREAM, 0) < 0)
il manque des parentheses ici, le < est prioritaire sur le =.
3
let_me_in
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007

18 juin 2007 à 23:11
tient, j'ai deux reponse au meme moment sur deux forum, merci pour ta reponse.
3
let_me_in
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007

18 juin 2007 à 21:11
desolé pour le double poste, mais j'ai cherché le bouton edit et j'ai pas trouvé.
salut tout le monde, voici mon code :
client:
<stdlib.h><errno.h><string.h>      #include <sys/socket.h>
      #include <sys/types.h>
      #include <netinet/in.h>
      #include
      #include <stdlib.h>
      #include <errno.h>      
      #include <string.h>         
      #include <stdio.h>      

      #define MAX_SEND 100

      

      int main()

      {

        int socket_connect, sockaddr_len;
  
        struct sockaddr_in sockaddr_connect,merde;

        char buffer[MAX_SEND];

        sockaddr_connect.sin_family = AF_INET;

        sockaddr_connect.sin_addr.s_addr = inet_addr("127.0.0.1");

        sockaddr_connect.sin_port = htons(6668);

    memset (&sockaddr_connect.sin_zero[8], 0, 1);

   
      
    if(socket_connect = socket(AF_INET, SOCK_STREAM, 0) < 0)

        {

           printf("Socket creation errror !\n" );

           return EXIT_FAILURE;

        }

       printf("socket=%d\n",socket_connect);

        if(connect(socket_connect, (struct sockaddr*)&sockaddr_connect, sizeof(sockaddr_connect)) < 0)

        {

           printf("Socket connection error !\n" );
       perror("erreur");

           return EXIT_FAILURE;

        }

      

        while(1)

        {

           printf("send>" );

           scanf("%s", &buffer);

           write(socket_connect, buffer, MAX_SEND);

        }

      

        close(socket_connect);

        return 0;

      }

serveur :

    #include <sys/socket.h>
    #include <netinet/in.h>
    #include
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <errno.h>   

    #define MAX_RECEPT 100
  
  

     int main(int argc, char* argv[])

      {

        if(argc < 2)

        {
           printf("Parameters error !\n" );
           return EXIT_FAILURE;
        }
        int socket_server, socket_client, server_len, client_len;
        struct sockaddr_in sockaddr_server, sockaddr_client;
        char buffer[MAX_RECEPT];
    char buff[50];
        time_t date;
        FILE* f = fopen(argv[1], "a" );
        if((socket_server = socket(AF_INET, SOCK_STREAM, 0)) < 0)
          {
           printf("Socket creation error !\n" );
           return EXIT_FAILURE;
         }
        sockaddr_server.sin_family = AF_INET;
        sockaddr_server.sin_port = htons(6668);
        sockaddr_server.sin_addr.s_addr = INADDR_ANY;
        server_len = sizeof(sockaddr_server);
        client_len = sizeof(sockaddr_client);
        if(bind(socket_server, (struct sockaddr*)&sockaddr_server, server_len) < 0)
        {

           printf("Socket bind error !\n" );
       printf("%d\n",errno);
      perror("erreur :");

           return EXIT_FAILURE;

        }

        if(listen(socket_server, 10) < 0)

        {

           printf("Socket listen error !\n" );

           return EXIT_FAILURE;

        }

        printf("[~]Waiting connection... \n" );

        socket_client = accept(socket_server, (struct sockaddr*)&sockaddr_client, &client_len);

        printf("[~]Established connection !\n" );

    

        time(&date);

        fprintf(f, "[!]Established connection at %s\n", ctime(&date));
     

        while(1)

        {

           if(read(socket_client, &buffer, MAX_RECEPT) < 0)

           {

              printf("Socket read error !" );

              return EXIT_FAILURE;

           } 

          

           printf("From client : %s\n\n", buffer); 

           fprintf(f, "From client : %s\n", buffer); 

        }

          

        close(socket_client);

        printf("Saving in %s\n", argv[1]);

      

        return 0;

      }

<stdio.h>
<stdlib.h><stdio.h><time.h><errno.h>le serveur se lance bel et bien, mais le client me retourne
cette erreur, et connect retourne 0 (j'ai lu quelque part que ceci
n'est pas un probleme du fait que c'est >0). une idee la dessus
merci d'avance.</errno.h></time.h></stdio.h></stdlib.h></stdio.h></string.h></errno.h></stdlib.h>
0
let_me_in
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007

18 juin 2007 à 23:10
salut tout le monde mon probleme est resolu, il fallait juste ajouter des parentheses sur

if ((socket_connect=socket(..))<0)

voila pour les ceux que ça interesse.

a+
0