[socket] socket operation on non socket
	
	
		salut tout le monde,
voici mon code :
client:
	Code:
	
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
   |       #include <sys/socket.h>
      #include <sys/types.h>
      #include <netinet/in.h>
      #include <unistd.h>
      #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*)&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:
	Code:
	
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
   |     #include <sys/socket.h>
    #include <netinet/in.h>
    #include <unistd.h>
    #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;
 
      } | 
 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.