Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2834 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++/Sockets/Unix]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++/Sockets/Unix]

n°1052083
DiaVX
Posté le 19-04-2005 à 13:10:01  profilanswer
 

Bonjour,  
Je cherche un simple example de Client/Serveur (Sockets) en C++ sous un système Unix (Débian), pour juste envoyer un caractère vers le serveur,
Je ne trouve pas celà sur le net, je galère..
 
Merci d'avance pour votre aide,
 
Amicalement,
DiaVX

mood
Publicité
Posté le 19-04-2005 à 13:10:01  profilanswer
 

n°1052093
Vinx
Posté le 19-04-2005 à 13:22:01  profilanswer
 

Tu as un exemple ici :
 
http://www.salemioche.com/outils/c_prog1.php


---------------
Slack powa | http://www.racingpneu.com
n°1052098
DiaVX
Posté le 19-04-2005 à 13:30:55  profilanswer
 

Merci beaucoup d'avoir répondu, mais ceci est en C, il y a des petites diff' pour les déclarations je pense

n°1052103
Vinx
Posté le 19-04-2005 à 13:35:42  profilanswer
 

Ah oui autant pour moi.
J'avais pas fait gaffe qu'il te faut du C++.
Là tu dois avoir un client-serveur qui fonctionne. Y a plus qu'à faire les classes et y copier le code. (Et éventuellement l'adapter)


---------------
Slack powa | http://www.racingpneu.com
n°1053515
DiaVX
Posté le 20-04-2005 à 14:01:33  profilanswer
 

justement c'est à l'adapter que je galère... je sais pas comment on les déclarent en C++, si qqu'un à un petit example (C++ sous unix...)  
 
merci

n°1060552
taron_31
Posté le 25-04-2005 à 21:56:07  profilanswer
 

Salut, je viens juste de coder un client/server unix avec un logguer integré au serveur :
 
Server :

Code :
  1. #include <sys/socket.h>
  2. #include <netinet/in.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6. #define MAX_RECEPT 200
  7. int main(int argc, char* argv[])
  8. {
  9.    if(argc < 2)
  10.    {
  11.       printf("Parameters error !\n" );
  12.       return EXIT_FAILURE;
  13.    }
  14.    int socket_server, socket_client, server_len, client_len;
  15.    struct sockaddr_in sockaddr_server, sockaddr_client;
  16.    char buffer[MAX_RECEPT];
  17.    time_t date;
  18.  
  19.    FILE* f = fopen(argv[1], "a" );
  20.  
  21.    if((socket_server = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  22.    {
  23.       printf("Socket creation error !\n" );
  24.       return EXIT_FAILURE;
  25.    }
  26.    sockaddr_server.sin_family = AF_INET;
  27.    sockaddr_server.sin_port = 6667;
  28.    sockaddr_server.sin_addr.s_addr = inet_addr("127.0.0.1" );
  29.  
  30.    server_len = sizeof(sockaddr_server);
  31.    client_len = sizeof(sockaddr_client);
  32.  
  33.    if(bind(socket_server, (struct sockaddr*)&sockaddr_server, server_len) < 0)
  34.    {
  35.       printf("Socket bind error !\n" );
  36.       return EXIT_FAILURE;
  37.    }
  38.  
  39.    if(listen(socket_server, 10) < 0)
  40.    {
  41.       printf("Socket listen error !\n" );
  42.       return EXIT_FAILURE;
  43.    }
  44.    printf("[~]Waiting connection... \n" );
  45.    socket_client = accept(socket_server, (struct sockaddr*)&sockaddr_client, &client_len);
  46.    printf("[~]Established connection !\n" );
  47.  
  48.    time(&date);
  49.    fprintf(f, "[!]Established connection at %s", ctime(&date));
  50.  
  51.    if(read(socket_client, &buffer, MAX_RECEPT) < 0)
  52.    {
  53.       printf("Socket read error !\n" );
  54.       return EXIT_FAILURE;
  55.    } 
  56.      
  57.    fprintf(f, "From client : %s\n", &buffer); 
  58.    printf("From client : %s\n", buffer); 
  59.  
  60.    close(socket_client);
  61.    printf("Logging in %s\n", argv[1]);
  62.  
  63.    return 0;
  64. }


 
Client :

Code :
  1. #include <sys/socket.h>
  2. #include <netinet/in.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. int main()
  6. {
  7.     int socket_connect, sockaddr_len, result;
  8.     struct sockaddr_in sockaddr_connect;
  9.     char buffer[200]; 
  10.     socket_connect = socket(AF_INET, SOCK_STREAM, 0);
  11.    
  12.     if(socket_connect < 0)
  13.     {
  14.        printf("Socket creation error !\n" );
  15.        return EXIT_FAILURE;
  16.     }
  17.     sockaddr_connect.sin_family = AF_INET;
  18.     sockaddr_connect.sin_addr.s_addr = inet_addr("127.0.0.1" );
  19.     sockaddr_connect.sin_port = 6667;
  20.     sockaddr_len = sizeof(sockaddr_connect);
  21.     if(connect(socket_connect, (struct sockaddr *)&sockaddr_connect, sockaddr_len) < 0)
  22.     {
  23.        printf("Socket connection error !\n" );
  24.        return EXIT_FAILURE;
  25.     }
  26.  
  27.     printf("send>" );
  28.     fgets(buffer, sizeof(buffer), stdin); 
  29.     write(socket_connect, buffer, sizeof(buffer));
  30.     close(socket_connect);
  31.    
  32.     return 0;
  33. }


 

Citation :

$./server log.txt
[~]Waiting connection...  
[~]Established connection !
From client : Hello !
Logging in log.txt


 

Citation :

$./client
Send>Hello!


 
Désolé je n'ai pas commente la source ;(, en esperant tout de même t'avoir aidé...


Message édité par taron_31 le 25-04-2005 à 22:19:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++/Sockets/Unix]

 

Sujets relatifs
transfert de fichier texte avec des socketsAjouter un groupe à un utilisateur dans un script Unix
[Unix] Nombre de colonnes d'un terminal[SOCKETS] Pb utilisation select ()
Convertir un prog C++ Unix en Prog Visuql C++ sous Windows[SOCKETS UNIX] Ecriture/Lecture
Select pour Socketsoption d'un terminal (programmation C sous Unix)
Problème d'affichage en PERL sous UNIX 
Plus de sujets relatifs à : [C++/Sockets/Unix]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)