begin process at 2010 02 09 20:16:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

Operation socket on non socket


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

Operation socket on non socket

lundi 18 juin 2007 à 20:55:50 | Operation socket on non socket

let_me_in

salut tout le monde, voici mon code : client: [code] #include #include #include #include #include #include #include #include #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; } [/code] serveur: [code] #include #include #include #include #include #include #include #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; } [/code] 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.
lundi 18 juin 2007 à 21:11:20 | Re : Operation socket on non socket

let_me_in

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:
      #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);

    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 <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.
lundi 18 juin 2007 à 22:59:04 | Re : Operation socket on non socket

aardman

Membre Club
Réponse acceptée !
Salut,
if(socket_connect = socket(AF_INET, SOCK_STREAM, 0) < 0)
il manque des parentheses ici, le < est prioritaire sur le =.

lundi 18 juin 2007 à 23:10:41 | Re : Operation socket on non socket

let_me_in

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+
lundi 18 juin 2007 à 23:11:48 | Re : Operation socket on non socket

let_me_in

Réponse acceptée !
tient, j'ai deux reponse au meme moment sur deux forum, merci pour ta reponse.


Cette discussion est classée dans : code, include, socket, connect, sockaddr


Répondre à ce message

Sujets en rapport avec ce message

Socket [ par casper_2 ] Rebonjour,jaimerais savoit,koment pourrai-je me reconecter automatiquement au serveur.ex:je lance mon programme sans ouvrir ma connexion internet.10 s probleme de communication entre deux programme [ par smook ] re salut le dernier message que j ai poster c etait pour les socket et la librairie "libwsock.a" mais sayer j ai passer cette etape j ai reussi a fair Socket connection manager Asterisk [ par kloklo22 ] Bonjour, j'ai besoin avec un programme C de me connecter au manager afin de récupérer des infos spécifiques mais mon problème c'est que ma socket en Probléme a l'éxécution [ par jerem3000 ] Bonjour Je crée un programme qui permet d'envoyer par email le contenue d'un fichier .txt , il devrait normalement marche car il n'y a pas d'erreur Compiler un code c par dev_cpp [ par mechwalid ] Bonjour [^^youpi]: , j ai essayé de compiler ce petit code : #include #include int main (void) { printf("Hello world!\n"); system("pause"); Code C : resolveur de meistermind probleme [ par kinder87000 ] Salut à tous, Voila mon problème j'ai essayer de faire un résolveur de meistermind mais je ne sais pas comment associer des couleurs à des chiffres e DeviceIoControl [ par raphui ] Salut a tous ! Je développe un " driver " , permettant de cacher un processus dans le Task Manager. Mon problème est que je n'arrive pas a envoyer u Reseaux/Sockets pb client/serveur [ par Rayn3d ] Bonjour tous le monde, j'ai un probleme avec un programme en reseaux client/serveur : lorsque j'envoie un message au client il se decoupe en plusieu programmation socket [ par you147 ] salut,j'ai un ptite application de programmation socket de chate client/ serveur sous lunix en C mais il y a un erreur je comprid pas cette erreur aid Lecture fichier .config [ par wislam2007 ] Salut J'ai le code ci-dessous qui permet la lecture d'un fichier .config, le probleme que sous DevCpp marche mais avec visual c++ 6.0 non plus. [code=


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 2,340 sec (3)

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