Operation socket on non socket

[Résolu]
Signaler
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007
-
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007
-
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

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

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

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>
Messages postés
4
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
18 août 2007

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+