begin process at 2012 02 10 21:15:10
  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 Pb chaine de caractères [ par baptchr55 ] Bonjour à tous encore une fois j'ai besoin de votre aide. J'essaye d'envoyer par le biais d'un socket une chaine de caractères. Ce qui fonctionne, se Chaine de caractères Via Socket [ par baptchr55 ] Bonjour à tous encore une fois j'ai besoin de votre aide. J'essaye d'envoyer par le biais d'un socket une chaine de caractères. Ce qui fonctionne, se Problèmes avec les Socket [ par baptchr55 ] Bonjour à tous, Je suis ennuyé avec la création de socket. J'aimerais pouvoir envoyer des données (dans un premier temps que j'écris) une par une se Pb de récuperation d'une liste chainée passée en réf à une autre fonction [ par amosaid ] Bonjour, mon code (en c) contient des appels imbrquées des fonctions, chaque fonction doit retourner TRUE ou FALSE (pas d'échage de variables par "re Utilisation DLL dynamique / getprocAddress null [ par Inutqen ] Bonjour à tous ! J'essaye d'utiliser une DLL fournie sans .lib, mais avec un beau .h, du coup je tente la combo LoadLibrary et GetProcAddress. Le pro code qui donne le temps d'exécution sous linux [ par elhajjajireda ] Bonjour, si le vous plait est ce que vous pouvez m'aider un peu pour comprendre ce code qui permet d'obtenir le temps d'exécution sous linux [code=cp programmation socket serveur client c/c++ [ par beni91 ] Bonsoir, je dois coder un serveur en c sous Windows avec comme compilateur borland mais j'ai des erreur que je n'arrive pas a résoudre. J'ai fait des


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,076 sec (3)

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