infoclick (Gers, 32) propose des solutions informatiques : vente matériel informatique, maintenance informatique, installation de votre réseau informatique d'entreprise, conseil informatique. Vente de PC assemblé, ordinateur assemblé (Intel Pentium, AMD Athlon, AMD Sempron, etc). PC assemblé pour gamer, bureautique et multimedia.
gers informatique informatique gers Maintenance informatique réseau informatique sécurité réseau informatique sécurité informatique dépannage informatique prestation informatique service informatique Matériel informatique| Introduction |
| La communication |
| Les fonctions |
La création d'un socket se fait grâce à la fonction socket(): int socket(famille,type,protocole)
Voici un exemple d'utilisation de la fonction socket() : descripteur = socket(PF_INET,SOCK_STREAM,0);
Après création du socket, il s'agit de le lier à un point de communication défini par une adresse et un port, c'est le rôle de la fonction bind(): bind(int descripteur,sockaddr localaddr,int addrlen)
sockaddr_in localaddr ;
localaddr.sin_family = AF_INET; /* Protocole internet */
/* Toutes les adresses IP de la station */
localaddr.sin_addr.s_addr = htonl(INADDR_ANY);
/* port d'écoute par défaut au dessus des ports réservés */
localaddr.sin_port = htons(port);
if (bind( listen_socket,
(struct sockaddr*)&localaddr,
sizeof(localaddr) ) == SOCKET_ERROR) {
// Traitement de l'erreur;
}
Le numéro fictif INADDR_ANY signifie que la socket peut-être associée à n'importe quelle adresse IP de la machine locale (s'il en existe plusieurs). Pour spécifier une adresse IP spécifique à utiliser, il est possible d'utiliser la fonction inet_addr() inet_addr("127.0.0.1");
/* utilisation de l'adresse de boucle locale */
La socket peut être reliée à un port libre quelconque en utilisant le numéro 0
La fonction listen() permet de mettre une socket en attente de connexion.
int listen(int socket,int backlog)
Voici un exemple d'utilisation de la fonction listen() : if (listen(socket,10) == SOCKET_ERROR) {
// traitement de l'erreur
}
La fonction accept() permet la connexion en acceptant un appel : int accept(int socket,struct sockaddr * addr,int * addrlen)
Voici un exemple d'utilisation de la fonction accept() : Sockaddr_in Appelant; /* structure destinee a recueillir les renseignements sur l'appelant Appelantlen = sizeof(from); accept(socket_locale,(struct sockaddr*)&Appelant, &Appelantlen);
La fonction connect() permet d'établir une connexion avec un serveur : int connect(int socket,struct sockaddr * addr,int * addrlen)
Voici un exemple d'utilisation de la fonction connect(), qui connecte le socket "s" du client sur le port port de l'hôte portant le nom serveur : toinfo = gethostbyname(serveur);
toaddr = (u_long *)toinfo.h_addr_list[0];
/* Protocole internet */
to.sin_family = AF_INET;
/* Toutes les adresses IP de la station */
to.sin_addr.s_addr = toaddr;
/* port d'écoute par défaut au dessus des ports réservés */
to.sin_port = htonl(port);
if (connect(socket,(struct sockaddr*)to,sizeof(to)) == -1) {
// Traitement de l'erreur;
}
La fonction recv() permet de lire dans un socket en mode connecté (TCP) int recv(int socket,char * buffer,int len,int flags)
Voici un exemple d'utilisation de la fonction recv() : retour = recv(socket,Buffer,sizeof(Buffer),0 );
if (retour == SOCKET_ERROR) {
// traitement de l'erreur
}
La fonction send() permet d'écrire dans un socket (envoyer des données) en mode connecté (TCP) int send(int socket,char * buffer,int len,int flags)
Voici un exemple d'utilisation de la fonction send() : retour = send(socket,Buffer,sizeof(Buffer),0 );
if (retour == SOCKET_ERROR) {
// traitement de l'erreur
}
La fonction close() permet la fermeture d'un socket en permettant au système d'envoyer les données restantes (pour TCP) : int close(int socket)La fonction shutdown() permet la fermeture d'un socket dans un des deux sens (pour une connexion full-duplex) : int shutdown(int socket,int how)
|
Qui sommes nous - infos légales - contact - liens - plan du site
Copyright © 2004 infoclick - 05 62 07 79 73 - Hôtel d'entreprise / ZI du Pont Peyrin 32600 Isle Jourdain
