Programmation de socket

_ahmed Messages postés 42 Statut Membre -  
IUTBay_dieu Messages postés 2 Statut Membre -
je suis un debutant :
les socket
je cherche comment 2 socket va se communique:

apres la creation de socket voici le suite ::

int res=0;
while(res!=0)
res = connect(my_socket,(struct sockaddr *) &adresse_socket,
sizeof(adresse_socket)) ;

int receive, envoie;
char *chaine=;
char Buffer[64];

if((envoie = send(my_socket,chaine,strlen(chaine),0)) != strlen(chaine))
printf("Echec de l'envoie des données !");

receive = recv(my_socket,Buffer,64,0);

closesocket(my_socket);

system("PAUSE");
return EXIT_SUCCESS;
}
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. IUTBay_dieu Messages postés 2 Statut Membre
     
    voici la programmetion de la socket du client:
    // création soket //
    int connec;
    int support=socket(AF_INET, SOCK_STREAM, 0);
    struct hostent *hote;
    struct sockaddr_in adr_dialogue;
    char message[255];

    if (support==-1)
    {
    printf(" Erreur de configuration soket \n");
    exit(-1);
    }
    else
    {
    printf(" Connection etablie. \n");
    }

    // Recuperation de l'adresse//

    if ((hote=gethostbyname("nom_serv"))==NULL)
    {
    printf(" Erreur d'hote \n");
    }
    else
    {
    printf(" Hote recuperer \n");
    }

    // Préparation a la connection //

    raz(&adr_dialogue);
    adr_dialogue.sin_addr.s_addr=((struct in_addr*)(hote->h_addr))->s_addr;
    adr_dialogue.sin_port=htons(*N°_de_port);
    adr_dialogue.sin_family=AF_INET;

    Ensuite plus qu'as connecter.

    le serveur:

    int support, valeurderetour;
    struct hostent *hote;
    struct sockaddr_in adr_ecoute;
    struct sockaddr_in adr_service;
    char message[255];
    int taille_adress=sizeof(struct sockaddr_in);
    int connexion;

    // Créer sockette //
    support=socket(AF_INET, SOCK_STREAM,0);
    printf("socket ok \n");

    // Atacher sockette //
    // préparation des informations //
    raz(&adr_ecoute);
    adr_ecoute.sin_family=AF_INET;
    adr_ecoute.sin_addr.s_addr=INADDR_ANY;
    adr_ecoute.sin_port=htons(N°_de_port);

    raz(&adr_service);

    // Atachement //
    valeurderetour=bind(support,&adr_ecoute, sizeof(struct sockaddr_in));
    printf("atachement =>ok\n");

    // Processus zombi //
    signal(SIGCLD, SIG_IGN);

    // se metre a l'écoute //
    listen(support, 10);
    printf("ecoute => ok\n");

    Il faut faire une RAZ sur les sockette a chaque début d'exécution:

    code:
    void raz(buf)
    struct sockaddr_in *buf; {
    int i;
    char *ptr;
    ptr=(char *)buf;
    for(i=0;i<sizeof(struct sockaddr_in);i++){
    *ptr=0;ptr++;
    }
    }

    Ensuite il faut faire attention a mettre les même N°_de_port pour que le client et le serveur communique entre eux.
    0