Client/Server Socket. Client/Serveur.

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

Cours de C – Séance dexercices 19 Octobre Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur.
GESTION D’IMPRISSION SOUS WINDOWS & LINUX
Programmation réseau Les sockets de Berkeley
Présentation de l’Internet
Mode Message Asynchrone (interface Socket)
Protocole PPP* *Point-to-Point Protocol.
14 - Adresse IP et interfaces. Plan détude 1)Adresse IP dune interface 1)Résolution de nom vers IP statique 1)Service DNS 1)Spécification des interfaces.
IUT Bordeaux 1 - Dépt. Informatique
Gestion de FICHIERS.
2-Generalites FTP:Protocole De transfert de fichiers sur un réseau TCP/IP. Permet de copier des fichiers depuis ou vers un autre ordinateur du reseaux,d'administrer.
4.La connexion de données 4-1.Présentation 4-2.Le mode actif 4-3.Le mode passif 4-4.Les commandes.
Sommaire: 1- Intro/ la raison d'être du FTP/petit historique
Université du Littoral - Côte d’Opale
FLSI602 Génie Informatique et Réseaux
Common Gateway Interface
Communication en mode message asynchrone
Serveurs Partagés Oracle
Labview Programmation réseau Communication par sockets
Le protocole FTP.
Les Réseaux Informatiques Le Modèle TCP/IP Clients & Serveurs Le protocole FTP Boukli HACENE Sofiane.
Les fichiers binaires en C++
Les sockets UNIX Sylvie Dupuy année 2000.
ÉLÉMENTS DE BASE UNIX.
Réseaux Informatiques
Vue d'ensemble Configuration d'adresses IP
TCP – Transmission Control Protocol
Les pointeurs L'opérateur &.
VAL3 Ethernet - Sockets A partir VAL 3 Version 4.x.
Technique de programmation : Le client/Serveur de traitements.
Développement d’application client/serveur
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
PHP 5° PARTIE : LES COOKIES
SYSTÈME D’EXPLOITATION I
Structures de données avancées : Concepts réseaux et protocole de communication. D. E ZEGOUR Institut National d ’Informatique.
User Datagram Protocol
Développement d’application client/serveur
Couche Transport (4) Routeur Messages entre A et B
NSY107 - Intégration des systèmes client-serveur Cours du 20/05/ début 27/05/2006 (4 à 6 heures) © Emmanuel DESVIGNE Document sous licence libre.
Labo 4 : Les structures et les entrées et sorties
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Projet télésurveillance
Advisor Advanced IP Présentation Télémaintenance Télésurveillance.
Entrées / Sorties.
Les Réseaux Informatiques Clients & Serveurs Le protocole FTP Laurent JEANPIERRE DEUST AMMILoR.
Les sockets.
http 1.1.  connexion persistante Browser Mozilla Firefox Adresse ip.
Les Réseaux Informatiques
Les RPC remote procedure call
Commutation de circuits
Couche transport du modèle OSI
Gestion d’accès aux centrales nucléaires françaises
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Ingénierie des réseaux
Les bases du protocole Modbus
1 Communications dans les systèmes distribués. 2 On distingue plusieurs niveaux d’abstractions 1. Bas Niveaux : Sockets 2. Niveau intermédiaire : transparence.
Fonctionnalité et protocole des couches applicatives
Architecture Client/Serveur
Langage de Programmation Orientée Objet : C++
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Algorithmique et langage C
Chapitre8 Configuration de l'adressage TCP/IP et de la résolution de noms Module S41.
Département Informatique Les Réseaux Informatiques Couche Transport Protocoles UDP & TCP Laurent JEANPIERRE.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – COMMUNICATION INTER PROCESSUS : TUBES.
1 Réseaux Communication socket sous Windows. 2 Communication socket sous Windows Communication entre 2 applications sur 2 machines distantes Adresse IP.
Communications via sockets
Synthèse Socket en C.
Communications via sockets
Transcription de la présentation:

Client/Server Socket

Client/Serveur

10 Introduction aux Sockets IPC : Inter Process Communication UNIX Bibliothèque #include La communication par socket utilise un descripteur pour désigner la connexion sur laquelle on envoie/reçoit les données

Communication locales 11

Communication locales Dans le domaine UNIX Communication locale à une machine Les identificateurs sone des nomes de fichiers Utilise une modalité de communication non connecté Le destinataire reçoit le message petit à petit Taille du message indéterminée 12

Communication locales L’ouverture d’un socket se fait en 2 étapes : Création d’un socket et de son descripteur Fonction socket () Spécifier le type de communication Fonction bind () Un server écoute Un client envoie 13

Socket data structure Structure générique 14

Socket data structure Famille AF_UNIX Plus grand que la structure générique Il faut spécifier la taille 15

Fonction socket () int socket (int af, int type, int protocol) af: AF_UNIX, AF_INET Type:SOCK_STREAM, SOCK_DGRAM, SOCK_STREAM Protocol: 0 (car af et type suffit) Retourne le descripteur Aucun transfert pour le moment 16

Fonction bind () Assignation d’une adresse/numéro de port locaux à un socket int bind(int sockfd, struct sockaddr *mon_adr, int lg_adr) 17

Fonctions sendto () recvfrom () Transmission/reception des données Flags = 0 18

Communication en mode connecté 19

Socket data structure Structure générique 20

Socket data structure Famille AF_INET IPv4 AF_INET sockets: struct sockaddr_in { short sin_family; unsigned short sin_port; // 2 bytes struct in_addr sin_addr; char sin_zero[8]; }; struct in_addr { unsigned long s_addr; // 4 bytes }; 21

Fonction socket () int socket (int af, int type, int protocol) af: AF_UNIX, AF_INET Type:SOCK_STREAM, SOCK_DGRAM, SOCK_RAW Protocol: 0 (car af et type suffit) Retourne le descripteur Aucun transfert pour le moment 22

Fonction bind () Assignation d’une adresse/numéro de port locaux à un socket int bind( int sockfd, struct sockaddr *mon_adr, int lg_adr) Serveur: enregistre son adresse publique IP + port Client: pas besoin en général 23

exemple 24

htonl (); htons (); unsigned long int htonl (unsigned long int hostlong); unsigned short int htons (unsigned short int hostshort); La fonction htonl() convertit un entier long hostlong depuis l'ordre des octets de l'hôte vers celui du réseau. La fonction htons() convertit un entier court (short) hostshort depuis l'ordre des octets de l'hôte vers celui du réseau. 25

Adresse IP INADDR_ANY le socket est associé à n’importe quelle adresse IP de la machine La fonction inet_addr () spécifie une adress IP 26

Port Le socket peut être reliée à un port libre quelconque en utilisant le numéro 0 27

Port Vérifier la port utilise par le serveur: getsockname( hServerSocket, (struct sockaddr *) &Address, (socklen_t *)&nAddressSize); printf("opened socket as fd (%d) on port (%d) for stream i/o\n",hServerSocket, ntohs(Address.sin_port) ); printf("Server\n\ sin_family = %d\n\ sin_addr.s_addr = %d\n\ sin_port = %d\n", Address.sin_family, Address.sin_addr.s_addr, ntohs(Address.sin_port) ); 28

Listen () int listen(int s, int backlog); Le serveur est prêt à recevoir des demandes d’ouvertures des connexions Le paramètre backlog définit une longueur maximale pour la file des connexions en attente. Si une nouvelle connexion arrive alors que la file est pleine, le client reçoit une erreur 29

Accept () int accept(int sock, struct sockaddr *adresse, socklent_t *longueur); La fonction accept extrait la première connexion de la file des connexions en attente, crée une nouvelle socket avec essentiellement les mêmes propriétés que sock et alloue un nouveau descripteur de fichier pour cette socket (retourné par la fonction). Fonction bloquante 30

Connect () int connect(int socket, const struct sockaddr *address, socklen_t address_len); Débuter une connexion sur une socket 31

Fonctions read () write () Réception des données int read(int sockfd, char *buf, int count); read lit jusqu'à count octets depuis le descripteur de socket dans le buffer pointé par buf. read renvoie -1 s'il échoue, sinon read renvoie le nombre d'octets lus 32

Fonctions read () write () Transmission des données int write(int sockfd, char *buf, int count); write écrit jusqu'à count octets dans le fichier associé au descripteur sockfd depuis le buffer pointé par buf write renvoie le nombre d'octets écrits (0 signifiant aucune écriture), ou -1 s'il échoue. 33

Close () int close(int sockfd); close ferme le descripteur sockfd, close renvoie 0 s'il réussit, ou -1 en cas d'échec 34

Debug Commande netstat Affiche toutes les sockets réseaux ouvertes Permet de vérifier les connexion ouvertes 38

Debug Commande telnet telnet Ouvre une connexion TCP vers le Permet de recevoir/transmettre chaine de caractère Fin chaine de caractère avec