Programmation Sockets en C/UNIX
|
|
- Marie-Hélène Labbé
- il y a 6 ans
- Total affichages :
Transcription
1 Programmation Sockets en C/UNIX Objectifs : 1. Présenter les bases de la programmation Sockets En C/UNIX Sébastien JEAN
2 Introduction La librairie UNIX socket permet la programmation au niveau transport Elle permet la gestion de 2 types de sockets : «Datagram Socket» = UDP «Stream Socket» = TCP Partie «include» d un code C/UNIX utilisant les sockets : #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> S.JEAN, décembre 2005, v1.3 Programmation Sockets 2
3 Descripteur de socket 1/2 Les sockets sont manipulés à travers un descripteur de type int un socket peut être vu comme un fichier Unix Un descripteur de socket peut être vu comme un descripteur de fichier L accès à un socket peut être basiquement réalisé via les primitive d accès aux flots (read/write) Rappel : lecture/écriture dans un flot d octets int cc, fd, nbytes; char buf [MAX]; cc = read(fd, buf, MAX); cc = write(fd, buf, cc) Lire au maximum MAX octets dans le flot décrit par fd, les stocker à l adresse buf, et obtenir le nombre d octets lus dans cc Écrire au maximum cc octets, stockés à l adresse buf, dans le flot décrit par fd, et obtenir le nombre d octets écrits dans cc S.JEAN, décembre 2005, v1.3 Programmation Sockets 3
4 Descripteur de socket 2/2 Initialisation d un socket : primitive socket int socket(int domaine, int type, int protocole); «fopen-like» Retourne le descripteur de socket Domaine : identifie le domaine de connexion (noyau/noyau, IP/noyau, IP/IP, ) AF_UNIX, AF_ROUTE, AF_INET, AF_APPLETALK, Type : type de socket SOCK_DGRAM (datagramme) SOCK_STREAM (flot) SOCK_RAW (programmation de niveau 3, administrateur seulement) Protocole : protocole à utiliser (adéquat au type) (voir /etc/protocols) 0 = protocole par défaut S.JEAN, décembre 2005, v1.3 Programmation Sockets 4
5 Adressage 1/5 Adresses de niveau transport : structures sockaddr et sockaddr_in 2 octets 14 octets Famille d adresse (domaine) Adresse Fournit un type générique de structure compatible avec les types spécifiques (AF_INET, AF_UNIX, ) Toutes les primitives de manipulation de sockets sont génériques, elles prennent en paramètre le type sockaddr (il faut penser à transtyper) struct sockaddr{ unsigned short int sa_family unsigned char sa_data[14]; struct sockaddr_in{ short int sin_family; unsigned short int sin_port; struct in_addr sin_addr; char sin_zero[8]; AF_INET port Adresse IP 2 octets 2 octets 4 octets Fournit un type spécifique de structure représentant une adresse de niveau transport pour une pile IP Inutilisé 8 octets S.JEAN, décembre 2005, v1.3 Programmation Sockets 5
6 Adressage 2/5 Adresses de niveau réseau : structure in_addr 4 octets Adresse L adresse IP est sérialisée en utilisant la convention Big-Endian, appelée également Network Byte Order (NBO) struct in_addr{ unsigned long s_addr; struct sockaddr_in{ NBO! unsigned short int sin_port; Big-Endian (NBO) Little-Endian S.JEAN, décembre 2005, v1.3 Programmation Sockets 6
7 Adressage 3/5 Adresses de niveau réseau : changement de conversion de sérialisation Il existe des primitives de changement de convention pour s adapter à la convention de sérialisation locale ou réseau : short htons(short); short ntohs(short); long htonl(long); long ntohl(long); host to network short : à utiliser avant d envoyer d initialiser un champs de type short network to host short : à utiliser avant d interpréter localement un champs de type short host to network long : à utiliser avant d envoyer d initialiser un champs de type long network to host long : à utiliser avant d interpréter localement un champs de type long S.JEAN, décembre 2005, v1.3 Programmation Sockets 7
8 Adressage 4/5 Obtention et affichage d adresses : int inet_aton(const char *sadr, struct in_addr *adr); Internet Address, ASCII to network Remplit une structure de type in_addr, dont l adresse est passée en paramètre (penser à l allouer), avec les octets correspondants à l adresse IP passée sous la forme d une chaîne de caractères en notation décimale pointée char * inet_ntoa(struct in_addr adr); Internet Address, network to ASCII Retourne une chaîne de caractères correspondant à la forme en notation décimale pointée de l adresse IP représentée dans la structure de type in_addr S.JEAN, décembre 2005, v1.3 Programmation Sockets 8
9 Adressage 5/5 Obtention d adresses via la DNS: struct hostent{ char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; ; Décrit un hôte du réseau, avec son nom (au sens DNS), les alias de ce nom, le type et la longueur des adresses réseau de cet hôte, ainsi que l ensemble des adresses réseaux de cet hôte struct hostent * gethostbyname(const char * name); Émet une requête DNS et obtient (si elles existent) les informations concernant l hôte dans la structure de type hostent retournée L adresse de l hôte s obtient en notation décimale pointée en appelant inet_ntoa avec en paramètre le premier élément du tableau d adresses S.JEAN, décembre 2005, v1.3 Programmation Sockets 9
10 Anatomie d une application UDP Émetteur Récepteur initialisation socket() bind() optionnel côté «client», requis côté «serveur» socket() bind() initialisation sendto() recvfrom() sendto() recvfrom() sendto() recvfrom() fermeture close() close() S.JEAN, décembre 2005, v1.3 Programmation Sockets 10
11 Anatomie d une application TCP Client Serveur initialisation demande de connexion connexion non établie connexion établie socket() bind() optionnel côté «client», requis côté «serveur» connect() write() / send() socket() bind() listen() accept () read() / receive() initialisation acceptation de connexion read() / receive() write() / send() read() / receive() write() / send() read() / receive() write() / send() fermeture close() / shutdown() close() / shutdown() S.JEAN, décembre 2005, v1.3 Programmation Sockets 11
12 Association locale d une adresse de niveau 4 Primitive bind int bind (int sockfd, struct sockaddr *my_addr, int addrlen); sockfd : descripteur de socket my_addr : pointeur sur une structure sockaddr (ou sockaddr_in) pour l initialisation addrlen : taille de la structure (typiquement sizeof(struct sock_addr)) Remarque : lors de l appel à socket, un bind implicite est effectué avec n importe quelle adresse valide pour la machine (INADDR_ANY) et comme port un port client (>=1024) choisi par le système parmi les libres. Pour un client, le bind explicite est optionnel. Exemple d initialisation : #define PORT_TELNET 23 struct sockaddr_in sockadrserv; numsocket = socket(af_inet, SOCK_STREAM,0); sockadrserv.sin_family= AF_INET; inet_aton (" ", &sockadrserv.sin_addr); sockadrserv.sin_port = htons(port_telnet); if (bind(numsocket,&sockadrserv,sizeof( sockadrserv))!=0) { printf ("probleme bind\n"); exit(0); S.JEAN, décembre 2005, v1.3 Programmation Sockets 12
13 Attente d une connexion (TCP) Primitive listen int listen(int numsock, int backlog); Place le socket du serveur en mode d écoute et d attente de demandes de connexions et précise la longueur de la file d attente des demandes de connexion Primitive accept int accept(int numsock, struct sockaddr *sockaddr, int *len); Attente bloquante d une demande de connexion de la part d un client. Lors de la connexion du client, un nouveau socket est créé et son numéro est renvoyé par la fonction. L ancien socket de numéro numsock peut satisfaire d autres demandes de connexion (on appelle ce socket «interface de bienvenue», car il ne sert qu à accepter des connexions). socketaddr donne en retour l identité de la machine distante (adresse IP + port, stockés dans une structure dont la taille est également retournée) Table des descripteurs de sockets Une table par process Unix n n+1 Numéro de socket retourn é par socket André Lagrèze Descripteur du socket n n Famille: AF_INET Service: locale Port distante Port distant S.JEAN, décembre 2005, v1.3 Programmation Sockets 13
14 Connexion, émission/réception Primitive connect int connect(int numsock, struct sockaddr *sockaddr, int len); Connexion à un processus serveur distant dont l adresse est passée en paramètre Primitives d envoi de données write et send (mode connecté) int write(int numsock, char * buffer, int nboctets); générique (écriture dans un flot) int send(int numsock, char * buffer, int nboctets, int flag); spécifique aux sockets Primitives de réception de données read et receive (mode connecté) int read(int numsock, char * buffer, int taillemax); générique (écriture dans un flot) int receive(int numsock, char * buffer, int taillemax, int flag); spécifique aux sockets Les primitives de réception sont bloquantes! S.JEAN, décembre 2005, v1.3 Programmation Sockets 14
15 Émission/réception (suite) Primitives d envoi de données sendto et recvfrom (mode non connecté) int sendto(int numsock, char * buffer, int nboctets, int flag, struct sockaddr *sockaddr, int len); Envoyer au maximum un datagramme de nboctets de données sur le socket numsock. Les données du datagramme sont stockées dans buffer. L adresse de niveau transport du destinataire est indiquée dans la structure sockaddr int recvfrom(int numsock, char * buffer, int taillemax, int flag, struct sockaddr *sockaddr, int *len); bloquant! Recevoir un datagramme d au maximum taillemax de données sur le socket numsock. Les données du datagramme seront stockées dans buffer. L adresse de niveau transport de l émetteur sera indiquée dans la structure sockaddr S.JEAN, décembre 2005, v1.3 Programmation Sockets 15
16 Fermeture de connexion Primitive close : fin d utilisation du socket int close (int numsock); équivalent à une fermeture de fichier Autres fonctions utiles obtenir des informations sur l adresse de niveau 4 locale int getsockname (int numsock, struct sockaddr * sockaddr, int *len); obtenir des informations sur l adresse de niveau 4 distante uniquement en mode connecté int getpeername(int numsock, struct sockaddr *sockaddr, int *len); S.JEAN, décembre 2005, v1.3 Programmation Sockets 16
17 Exemple UDP : client 1/3 /* fpont 12/99, pont.net, udpclient.c */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> #include <string.h> /* memset() */ #include <sys/time.h> /* select() */ #define REMOTE_SERVER_PORT 1500 #define MAX_MSG 100 int main(int argc, char *argv[]) { int sd, rc, i; struct sockaddr_in cliaddr, remoteservaddr; struct hostent *h; /* check command line args */ if(argc<3) { printf("usage : %s <server> <data1>... <datan> \n", argv[0]); exit(1); S.JEAN, décembre 2005, v1.3 Programmation Sockets 17
18 Exemple UDP : client 2/3 /* get server IP address (no check if input is IP address or DNS name */ h = gethostbyname(argv[1]); if(h==null) { printf("%s: unknown host '%s' \n", argv[0], argv[1]); exit(1); printf("%s: sending data to '%s' (IP : %s) \n", argv[0], h->h_name, inet_ntoa(*(struct in_addr *)h->h_addr_list[0])); remoteservaddr.sin_family = h->h_addrtype; memcpy((char *) &remoteservaddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); remoteservaddr.sin_port = htons(remote_server_port); /* socket creation */ sd = socket(af_inet,sock_dgram,0); if(sd<0) { printf("%s: cannot open socket \n",argv[0]); exit(1); /* bind any port */ cliaddr.sin_family = AF_INET; cliaddr.sin_addr.s_addr = htonl(inaddr_any); cliaddr.sin_port = htons(0); rc = bind(sd, (struct sockaddr *) &cliaddr, sizeof(cliaddr)); if(rc<0) { printf("%s: cannot bind port\n", argv[0]); exit(1); S.JEAN, décembre 2005, v1.3 Programmation Sockets 18
19 Exemple UDP : client 3/3 /* send data */ for(i=2;i<argc;i++) { rc = sendto(sd, argv[i], strlen(argv[i])+1, 0, (struct sockaddr *) &remoteservaddr, sizeof(remoteservaddr)); if(rc<0) { printf("%s: cannot send data %d \n",argv[0],i-1); close(sd); exit(1); return 1; S.JEAN, décembre 2005, v1.3 Programmation Sockets 19
20 Exemple UDP : serveur 1/2 /* fpont 12/99, pont.net udpserver.c */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> /* close() */ #include <string.h> /* memset() */ #define LOCAL_SERVER_PORT 1500 #define MAX_MSG 100 int main(int argc, char *argv[]) { int sd, rc, n, clilen; struct sockaddr_in cliaddr, servaddr; char msg[max_msg]; /* socket creation */ sd=socket(af_inet, SOCK_DGRAM, 0); if(sd<0) {printf("%s: cannot open socket \n",argv[0]); exit(1); S.JEAN, décembre 2005, v1.3 Programmation Sockets 20
21 Exemple UDP : serveur 2/2 /* bind local server port */ servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(inaddr_any); servaddr.sin_port = htons(local_server_port); rc = bind (sd, (struct sockaddr *) &servaddr,sizeof(servaddr)); if(rc<0) { printf("%s: cannot bind port number %d \n", argv[0], LOCAL_SERVER_PORT); exit(1); printf("%s: waiting for data on port UDP %u\n", argv[0],local_server_port); /* server infinite loop */ while(1) { /* init buffer */ memset(msg,0x0,max_msg); /* receive message */ clilen = sizeof(cliaddr); n = recvfrom(sd, msg, MAX_MSG, 0, (struct sockaddr *) &cliaddr, &clilen); if(n<0) { printf("%s: cannot receive data \n",argv[0]); continue; /* print received message */ printf("%s: from %s:udp%u : %s \n", argv[0],inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port),msg); /* end of server infinite loop */ return 0; S.JEAN, décembre 2005, v1.3 Programmation Sockets 21
22 Exemple TCP : client 1/3 /* fpont 12/99 pont.net tcpclient.c */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> /* close */ #define SERVER_PORT 1500 #define MAX_MSG 100 int main (int argc, char *argv[]) { int sd, rc, i; struct sockaddr_in localaddr, servaddr; struct hostent *h; if(argc < 3) { printf("usage: %s <server> <data1> <data2>... <datan>\n",argv[0]); exit(1); S.JEAN, décembre 2005, v1.3 Programmation Sockets 22
23 Exemple TCP : client 2/3 h = gethostbyname(argv[1]); if(h==null) { printf("%s: unknown host '%s'\n",argv[0],argv[1]); exit(1); servaddr.sin_family = h->h_addrtype; memcpy((char *) &servaddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); servaddr.sin_port = htons(server_port); /* create socket */ sd = socket(af_inet, SOCK_STREAM, 0); if(sd<0) { perror("cannot open socket "); exit(1); /* bind any port number */ localaddr.sin_family = AF_INET; localaddr.sin_addr.s_addr = htonl(inaddr_any); localaddr.sin_port = htons(0); rc = bind(sd, (struct sockaddr *) &localaddr, sizeof(localaddr)); if(rc<0) { printf("%s: cannot bind port TCP %u\n",argv[0],server_port); perror("error "); exit(1); S.JEAN, décembre 2005, v1.3 Programmation Sockets 23
24 Exemple TCP : client 3/3 /* connect to server */ rc = connect(sd, (struct sockaddr *) &servaddr, sizeof(servaddr)); if(rc<0) { perror("cannot connect "); exit(1); for(i=2;i<argc;i++) { rc = send(sd, argv[i], strlen(argv[i]) + 1, 0); if(rc<0) { perror("cannot send data "); close(sd); exit(1); printf("%s: data%u sent (%s)\n",argv[0],i-1,argv[i]); return 0; S.JEAN, décembre 2005, v1.3 Programmation Sockets 24
25 Exemple TCP : serveur 1/2 /* fpont 1/00 pont.net tcpserver.c */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> /* close */ #define SUCCESS 0 #define ERROR 1 #define END_LINE 0x0 #define SERVER_PORT 1500 #define MAX_MSG 100 int main (int argc, char *argv[]) { int sd, newsd, clilen; struct sockaddr_in cliaddr, servaddr; char line[max_msg]; /* create socket */ sd = socket(af_inet, SOCK_STREAM, 0); if(sd<0) { perror("cannot open socket "); return ERROR; S.JEAN, décembre 2005, v1.3 Programmation Sockets 25
26 Exemple TCP : serveur 2/2 /* bind server port */ servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(inaddr_any); servaddr.sin_port = htons(server_port); if(bind(sd, (struct sockaddr *) &servaddr, sizeof(servaddr))<0) { perror("cannot bind port "); return ERROR; listen(sd,5); while(1) { printf("%s: waiting for data on port TCP %u\n",argv[0],server_port); clilen = sizeof(cliaddr); newsd = accept(sd, (struct sockaddr *) &cliaddr, &clilen); if(newsd<0) { perror("cannot accept connection "); return ERROR; /* receive segments */ memset(line,0x0,max_msg); while(read(newsd,line, MAX_MSG)!=EOF) { printf("%s: received from %s:tcp%d : %s\n", argv[0], inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port), line); memset(line,0x0,max_msg); S.JEAN, décembre 2005, v1.3 Programmation Sockets 26
27 FIN! S.JEAN, décembre 2005, v1.3 Programmation Sockets 27
Applications client/serveur TCP/IP - Sockets Rappels. C.Crochepeyre Applications CS 1
Applications client/serveur TCP/IP - Sockets Rappels C.Crochepeyre Applications CS 1 PLAN Modèle client/serveur Modèle ISO et protocole TCP/IP Comment ça marche? La programmation: les sockets Exemples
Plus en détail1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau
1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau Fonctionnement de l Internet Fonctionnement de l Internet Basé sur une architecture TCP/IP du nom des deux principaux protocoles
Plus en détailCommunication par sockets
Rappel : le réseau vu de l!utilisateur (1) Communication par sockets Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia (demande un service)
Plus en détailProgrammation Réseau. Anthony Busson IUT Info Lyon 1
Programmation Réseau Anthony Busson IUT Info Lyon 1 Plan du cours Introduction Rôles du système et des applications Rappel TCP-IP Panorama des langages Couche socket : introduction Panorama de la couche
Plus en détailTravaux Pratiques Introduction aux réseaux IP
Université de Savoie Initiation aux réseaux IP Travaux Pratiques Introduction aux réseaux IP Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TP1 : Analyse la
Plus en détailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en détailCommunication sous UNIX les sockets
Communication sous UNIX les sockets Chaput Emmanuel Version 1.04 Résumé Ce but de ce petit document est de décrire la programmation des sockets sous Unix afin d aider le programmeur à développer des applications
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailLe système de gestion des fichiers, les entrées/sorties.
Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailProgrammation client-serveur sockets - RPC
Master Informatique M Plan de la suite Programmation client-serveur sockets - RPC Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/people/krakowia
Plus en détailExercice sur les Dockers
Exercice sur les Dockers Les parties composant les Dockers: 1 docker daemon: est un démon qui gère les dockers (les conteneurs LXC) qui tournent sur la machine hôte 2 docker CLI: une série de commandes
Plus en détailLA COUCHE TRANSPORT CONTRÔLE LE FLOT DE DONNEES TRANSMISES par la couche Réseau
M1 Informatique Réseaux Cours 6 Couche Transport : TCP et UDP Notes de Cours LA COUCHE TRANSPORT CONTRÔLE LE FLOT DE DONNEES TRANSMISES par la couche Réseau dans le but d offrir des garanties de service
Plus en détailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détail3IS - Système d'exploitation linux - Programmation système
3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des
Plus en détailCommunication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle
F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Communication inter-processus (IPC) : tubes & sockets exemples en C et en Java F. Butelle F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Java : implémentation
Plus en détailCours de Système : Gestion de Fichiers
Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plus en détailDNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN
Mémoire DNS Server RPC Interface buffer overflow Céline COLLUMEAU Nicolas BODIN 3 janvier 2009 Table des matières 1 Introduction 2 2 Présentation de la faille 3 3 Exemple d exploitation 5 4 Solutions 10
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailProgrammation Internet en Java
Chapitre 8 Programmation Internet en Java Vous avez déjà utilisé Internet, le plus connu des inter-réseaux mondiaux d ordinateurs et quelques-uns de ses services, en particulier le web et le courrier électronique.
Plus en détailCours de C. Petits secrets du C & programmation avancée. Sébastien Paumier
Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression
Plus en détailProgrammation Réseau en C sous Unix
Chapitre 1 : Notions de base I. Structure d adresse : En programmation réseau, nous allons utiliser les sockets. C est un moyen de communication qui se définit par un port et une adresse. Elle est représentée
Plus en détailArguments d un programme
Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1
Plus en détailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailLier Erlang avec d autres langages de programmation
16 Lier Erlang avec d autres langages de programmation Les logiciels actuels, quelle que soit leur taille, sont souvent écrits dans plusieurs langages de programmation. Généralement, les pilotes de périphériques
Plus en détailINFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table
Plus en détailLEs processus coopèrent souvent pour traiter un même problème. Ces
Chapitre 5 Communication interprocessus LEs processus coopèrent souvent pour traiter un même problème. Ces processus s exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs)
Plus en détailStructure d un programme
Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé
Plus en détailGESTION DES FICHIERS C/UNIX
Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant
Plus en détailPlaying with ptrace() for fun and profit
sous GNU/Linux nicolas.bareil@eads.net EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailLe traitement du temps
Programmation Système Mesure Horloges Sommeil Mise en forme Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/ enib, F.H... 1/30 Intérêt Cadencer les
Plus en détailPlan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.
Programmation système II Socket UNIX, Terminaux, Async IO, Mémoire, ELF Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 Plan global 1 Socket UNIX 2 Terminaux 3 Autres modèles
Plus en détailProgrammation Réseau SSH et TLS (aka SSL)
Programmation Réseau SSH et TLS (aka SSL) Jean-Baptiste.Yunes@liafa.jussieu.fr Coloriages: François Armand armand@informatique.univ-paris-diderot.fr UFR Informatique 2011-2012 Réseau et Sécurité Problèmes
Plus en détailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailRapport final. Mise en place du réseau d'une entreprise de taille moyenne. Date de rendu : 18/07/2011 Promotion : 4PPA SRS
Date de rendu : 18/07/2011 Promotion : 4PPA SRS Rapport final Mise en place du réseau d'une entreprise de taille moyenne Enseignant : Neveu Mail de l enseignant : nneveu@gmail.com Auteurs : - Yassine Bourzik
Plus en détailProgrammation défensive
Programmation défensive Matthieu Herrb INSA Toulouse, Novembre 2012 http://homepages.laas.fr/matthieu/cours/mh-prog-defensive.pdf Licence Ce document est sous licence Creative Commons Paternité - Partage
Plus en détailModèle client-serveur Plan. Modèle client-serveur. Modèle client-serveur définition. Modèle client-serveur communication par messages.
Modèle client- Modèle client- Plan Michel RIVEILL riveill@unice.fr Polytech Nice - Sophia Principe Traitement des défaillances Désignation, localisation et liaison Intégration aux langages de programmation
Plus en détailCouche application. La couche application est la plus élevée du modèle de référence.
Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application
Plus en détailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailPROJET ALGORITHMIQUE ET PROGRAMMATION II
PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du
Plus en détailArchivage Messagerie Evolution pour usage HTML en utilisant Hypermail
Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire
Plus en détailLes risques d OpenFlow et du SDN
Les risques d OpenFlow et du SDN Maxence Tury maxence.tury@ssi.gouv.fr ANSSI Résumé Par opposition aux réseaux traditionnels, le paradigme Software-Defined Networking prône une séparation des fonctions
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailNOTICE INSTALLATION. ARCHANGE Email Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE
NOTICE INSTALLATION ARCHANGE Email Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE Date Version Marque de révision Rédaction 31/07/2012 1 - Nicolas AUBLIN 1) PRINCIPE DE FONCTIONNEMENT...
Plus en détailCahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Plus en détail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailLes processus. Système L3, 2014-2015 1/39
Les processus Système L3, 2014-2015 1/39 Les processus Processus = Instance d un programme en cours d exécution plusieurs exécutions de programmes plusieurs exécutions d un même programme plusieurs exécutions
Plus en détailCONVERTISSEUR RS 232/485 NOTICE
CONVERTISSEUR RS 232/485 068745 068745 NOTICE Ce convertisseur TCP/IP permet de convertir tous équipements à liaison série et de les superviser sur un réseau LAN. Sommaire 1 Description du produit...2
Plus en détailFlux de données Lecture/Ecriture Fichiers
Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d
Plus en détaille minimum pour communiquer par réseau (sans toutefois y comprendre grand chose)
L API socket en résumé le minimum pour communiquer par réseau (sans toutefois y comprendre grand chose) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/58 Propos
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailLes fichiers. Chapitre 4
Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,
Plus en détailSSH, le shell sécurisé
, le shell sécurisé Objectifs : 1. Présenter le protocole et les outils associés Sébastien JEAN Pourquoi 1/2? Les services standards ne supportent que peu de propriétés de sécurité souvent l identification,
Plus en détailINF 104 (SELC) 2012-2013 Introduction au langage C
INF 104 (SELC) 2012-2013 Introduction au langage C Plan Première partie C après Java Structure d un programme Préprocesseur Variables Types de base Types composés Pointeurs(1) Instructions Deuxième partie
Plus en détailProgrammation Réseau. ! UFR Informatique ! 2013-2014. Jean-Baptiste.Yunes@univ-paris-diderot.fr
Programmation Réseau Jean-Baptiste.Yunes@univ-paris-diderot.fr! UFR Informatique! 2013-2014 1 Programmation Réseau Introduction Ce cours n est pas un cours de réseau on y détaillera pas de protocoles de
Plus en détailTestez votre installation. Créer un répertoire vide
http://www.gnu.org/software/dejagnu/ Exposé sur DejaGNU Sommaire Présentation 1 Comment l obtenir.. 1 Comment obtenir la documentation 1 Comment çà marche 1 Remarque 5 Présentation DejaGnu est un système
Plus en détailTRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique
Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père
Plus en détailFonctionnement Kiwi Syslog + WhatsUP Gold
Fonctionnement Kiwi Syslog + WhatsUP Gold Configuration Kiwi Syslog server Pour configurer Kiwi Syslog server, commencez par cliquer sur l icône setup de la barre des taches : La fenêtre de configuration
Plus en détailINF8007 Langages de script
INF8007 Langages de script Sockets et serveur 1/18 INF8007 Langages de script Sockets et serveur Michel Desmarais Génie informatique et génie logiciel École Polytechnique de Montréal Hiver, 2014 INF8007
Plus en détailDans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.
I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détailDis papa, c est quoi un bus logiciel réparti?
Dis papa, c est quoi un bus logiciel réparti? Raphael.Marvie@lifl.fr LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la
Plus en détailSTS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
Plus en détailGestion de la mémoire
433 43 3 Gestion de la mémoire + 1. Qu'est-ce que la mémoire? - Définitions, exemples 2. Allocation contiguë en mémoire - Partitions de taille fixe, de taille variable 3. Pagination et mémoire virtuelle
Plus en détailEPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall
B.T.S Informatique de Gestion Option Administrateur de Réseaux Locaux d Entreprise Session 2004/2005 EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES Nom et prénom du candidat : TAGLIAFERRI Eric ACTIVITE
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailCours 6 : Programmation répartie
Cours 6 - PC2R - M2 STL - UPMC - 2008/2009 p. 1/49 Cours 6 : Programmation répartie modèle à mémoire répartie Interneteries Client/serveur Exemples en O Caml Classe Java clients/serveur multi-langages
Plus en détailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailProgramme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détailUDP/TCP - Protocoles transport
UDP/TCP - Protocoles transport ISEN/ITII- UDP/TCP 1 Plan UDP : LE PROTOCOLE TRANSPORT DATAGRAM Concept de ports Format du datagramme TCP : LE PROTOCOLE DE TRANSPORT FIABLE Connexion Segmentation Fenêtrage
Plus en détailIntroduction. Adresses
Architecture TCP/IP Introduction ITC7-2: Cours IP ESIREM Infotronique Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr 27 février 2008 L Internet est basé sur l architecture TCP/IP du nom
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailArchitecture d un système d exploitation
Architecture d un système d exploitation 1/71 Architecture d un système d exploitation Jean-Claude Bajard IUT de Montpellier, Université Montpellier 2 Première année de DUT Architecture d un système d
Plus en détailDHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013
DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version
Plus en détailCouche Transport TCP et UDP
Partie 7: Couche Transport TCP et UDP Ahmed Mehaoua - 1 Le Modèle OSI Application Présentation Session Transport Réseau Liaison Physique Application Présentation Session Transport Réseau Liaison Physique
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailProgrammation système
Programmation système Christine Solnon Table des matières 1 Les processus 2 1.1 Etats d un processus................................... 2 1.2 Descripteur d un processus (PCB)...........................
Plus en détailA.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW
A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca
Plus en détailSurveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition
Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution
Plus en détailRéseaux IUP2 / 2005 IPv6
Réseaux IUP2 / 2005 IPv6 1 IP v6 : Objectifs Résoudre la pénurie d'adresses IP v4 Délai grâce à CIDR et NAT Milliards d'hôtes même avec allocation inefficace des adresses Réduire la taille des tables de
Plus en détailOutils de l Internet
Outils de l Internet -Infrastructures des réseaux nationaux -Protocoles et RFC -Applications - Netscape 6 -Techniques de recherche sur l Internet P.Razac/CNAM - Outils de l'internet 1 Infrastructures des
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détail2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.
2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement
Plus en détailDéveloppement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)
Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Propriétés Description Intitulé long Formation concernée Matière Présentation Développement d un logiciel de messagerie
Plus en détailArchitecture distribuée
Architecture distribuée Conception et développement d algorithmes distribués pour le moteur Baboukweb Jean-Christophe DALLEAU Département de Mathématiques et Informatique Université de La Réunion 26 juin
Plus en détail