Envoyee un nombre via une socket

Fermé
younes3120 - Modifié par younes3120 le 1/11/2015 à 17:49
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - 7 févr. 2017 à 13:18
salut,je veux envoyer un nbr (entier) en utilisent 1 Socket ,est mon but c'est d'arriver a envoyer 2 nombres pour faire une addition au niveau de serveur et puis l'envoyer(resultat) au clients
vioci le code pour 1 entier envoyer ,mais je trouve 1 pb avec le serveur.....
si qq peut m'aider a resourder ce pb
Merci

/*
    Clent socket tcp
*/
#include<stdio.h> //printf
#include<string.h>    //strlen
#include<sys/socket.h>    //socket
#include<arpa/inet.h> //inet_addr
 
int main(int argc , char *argv[])
{
    int sock;
    struct sockaddr_in server;
    char message[1000] , server_reply[2000];
    int a; 
    char r1; 
     
     
    //Creation d1 socket
    sock = socket(AF_INET , SOCK_STREAM , 0);
    if (sock == -1)
    {
        printf("impossible de creer une socket\n");
    }
    puts("Socket creer!!!! good job");
     
    server.sin_addr.s_addr = inet_addr("127.0.0.1");//adresse ipv4
    server.sin_family = AF_INET;// famille d'@
    server.sin_port = htons( 8880 );//**en utilisent big endien NBO   pour la sérialiser , htons (host to network short) 
 
    //Connection au serveur

  puts ("connection au serveur\n") ;
    if (connect(sock , (struct sockaddr *)&server/*pointeur sur l'@ du serveur est qui est passé en parametre**/ , sizeof(server)) < 0)
    {
        perror("peut pas connecter au serveur");
        return 1;
    }
     
    puts("vous etnSes Connecté\n");
         //communition server
    while(1)
    {
        printf("Enter votre nbres : ");
        scanf("%d " ,&a );
        
         
        //envoyer data
        if  (( send(sock , (char * )& a , sizeof(&a) , 0) < 0)  ) 

        {
            puts("l'envoie a ete echoué");
            return 1;
        }
         
        //la réponse du serveur
        if( recv(sock , (char *)& a , 2000 , 0) < 0)
        {
            puts("recv echoué");
            break;
        }
         
        
    }
     
    close(sock);
    return 0;
}





/*
    C socket server TCP
*/
 
#include<stdio.h>
#include<string.h>    //strlen
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr
#include<unistd.h>    //write
 
int main(int argc , char *argv[])
{
    int socket_desc , client_sock , c , read_size,read_size1;
    struct sockaddr_in server , client;
    char client_message[2000];
    int a;
    char t ;
     
    //Creation d1 socket
    socket_desc = socket(AF_INET , SOCK_STREAM , 0);
    if (socket_desc == -1)
    {
        printf("on peut pas creer la socket");
    }
    puts("Socket bien creer");
     
    //Preparer sockaddr_in structure
    server.sin_family = AF_INET;//***fammille d'@
    server.sin_addr.s_addr = INADDR_ANY;//********@ qqn
    server.sin_port = htons( 8880);//*****en utilisent big endien NBO   pour la sérialiser , htons (host to network short) 
     
    //Bind
    if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
    {
        
        perror("bind. Error");
        return 1;
    }
    puts("bind attaché");
     
    //Listen
    listen(socket_desc ,3);
     
    //Accept connection
    puts("attedez une connection...");
    c = sizeof(struct sockaddr_in);
     
    //accept conection de client qui vient de se connecter!
    client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
    if (client_sock < 0)
    {
        perror("accept failed");
        return 1;
    }
    puts("Connection accepté");
     
    //Receoit les message de client
    if ( (read_size = recv(client_sock , (char *)&a , 2000 , 0)) > 0 ) 
    {
        
        write(client_sock , &a , sizeof(&a)); 
                
    }
     
    if(read_size == 0)
    {
        puts("Client disconnected");
        fflush(stdout);
    }
    else if(read_size == -1)
    {
        perror("recv failed");
    }
     
    return 0;
}


2 réponses

chris79 Messages postés 91 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 1 février 2016 25
5 nov. 2015 à 00:46
Salut,

Peux-tu nous en dire un peu plus ?
Quel genre de problème au niveau du serveur as-tu rencontré ?

++
0
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
Modifié par poparnassus le 7/02/2017 à 13:21
Salut, je bosse aussi sur less socket en ce moment, je pourrais pas trop t'aider dans le code mais par contre je peux te filer ce liens trés interessant !
http://sdz.tdct.org/sdz/les-sockets.html


Autre sujet:
J'ai ouvert un topic, si defois quelqun a le temp de me lire et de mi'aider ^^
Merci https://forums.commentcamarche.net/forum/affich-34339818-definir-qui-est-le-serveur-qui-est-le-client
0