Programmation de socket

Fermé
_ahmed Messages postés 41 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 30 avril 2009 - 28 mai 2007 à 21:42
IUTBay_dieu Messages postés 2 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 29 mai 2007 - 29 mai 2007 à 16:48
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;
}

1 réponse

IUTBay_dieu Messages postés 2 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 29 mai 2007
29 mai 2007 à 16:48
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