Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1520 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Recherche cours sur les sockets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Recherche cours sur les sockets

n°66495
[ ZeD ]
Désigné volontaire
Posté le 19-10-2001 à 19:11:45  profilanswer
 

Hello !
 
Voilà je cherche des cours ou tutoriaux sur les sockets sous windows.
 
Merci d'avance !


---------------
The N·Zone New Formation Official Website
mood
Publicité
Posté le 19-10-2001 à 19:11:45  profilanswer
 

n°66500
chadenat
Posté le 19-10-2001 à 20:18:32  profilanswer
 
n°66504
__Lolo__
C'est pouleversant !
Posté le 19-10-2001 à 20:29:01  profilanswer
 

tiens au passage mon cours de socket en C de l'an dernier :
 
Programmation des sockets
 
I) Introduction
 
socket = extension de la notion de descripteur de fichier  
-> caractérisé par un descripteur inséré ds la table des descripteurs d'un process
-> utilisation des fonctions standard
 
implémenté pr la 1ere fois sous unix BSD
 
 
II) Concepts de base
 1) Famille de protocole et famille d'adressage (domaine)
  a) Famille de protocole (Protocol Family)
 
Ensemble de protocoles répondant à une caractérisitique commune dans le cadre d'une architecture réseau
ex : PF_INET caractérise les protocoles Internet reposant sur IP (TCP et UDP par ex)
ex : PF_UNIX caractérise les protocoles propres aux systèmes UNIX
 
  b) Famille d'adresse (Adresse Family)
 
Ensemble de protocoles définissant un point de connection réseau de manière identique
ex : AF_INET : il faut le couple adresse IP / n° de port (www.ec-lille.fr / 80 pr accéder au serveur de l'école)
 
extrait de <sys/socket.h> (pr montrer pkoi on dit souvent que y a pas de diff entre PF_xxx et AF_xxx)
#define PF_UNIX 0
#define PF_INET 1
#define PF_APPLTALK 2
...
...
#define AF_INET PF_INET
 
 
 2) Type de socket
 
couche application du modèle OSI
 
SOCK_DGRAM : socket de type datagram pour communication en mode non connecté (rapide mais non fiable) -> ex : UDP
SOCK_STREAM : flux en mode connecté (fiable) -> ex : TCP
SOCK_RAW : socket "brute" servant à définir de nouveau protocole -> accès direct à IP
 
 
 
III) Famille d'adressage et structures de données
 
* sys/socket.h
 
struct sockaddr {
       u_short sa_family; /* famille d'adressage */
       char    sa_data[14]; /* autres données d'une famille d'adressage */
}
 
* AF_UNIX (machine locale)
 
sys/un.h
struct sockaddr_un {
       u_short sun_family; /* AF_UNIX */
       cahr    sun_path[108]; /* Nom du pseudo fichier de synchro */
}
 
pseudo fichier de synchro : il apparait avec un ls -la (avec la lettre s au debut de ses attributs de protection)
 
* AF_INET
 
netinet/in.h
struct sockaddr_in {
       u_short    sin_family; /* AF_INET */
       u_short    sin_port; /* port de connection */
       struct in_addr sin_addr; /* adresse IP */
       char    sin_zero[8]; /* réservé */
}
 
struct in_addr {
       u_long    s_addr;
}
 
 
 
 
IV) Primitives de programmation de sockets
 1) Création d'un socket
 
int socket (u_short domain, /* famille d'adressage : AF_UNIX, AF_INET */
        int type,       /* type de socket : SOCK_DGRAM, SOCK_STREAM */
 int protocol   /* mettre 0 pr le protocol par défaut (svt y en a qu'un de tte facon) */
);
 
L'entier retourné est un descripteur de socket.
 
ATTENTION !  
descripteur de fichier :  
0 = entrée standard (stdin)
1 = sortie standard (stdout)
2 = sortie erreur (stderror)
 
 
 
 2) Liaison d'une socket (bind)
 
Permet d'associer une adresse a une socket
int bind (int sd,        /* descripteur de socket */
      struct sockaddr * addr,       /* addresse associée */
      int longueur        /* nbre d'octets de addr */
);
 
Renvoi -1 en cas d'erreur.
 
 
Pour les primitives suivantes, regardé ds le manuel
 
 3) Primitives d'entrees/sorties
  a) Lecture
 
En mode non connecté : recvfrom  
En mode connecté : recv, read (standard)
 
 
  b) Ecriture
 
En mode non connecté : sendto
En mode connecté : send, write
 
 
 4) Etablir une connection
 
process actif (écrivain/client)  | process passif (lecteur/serveur)
---------------------------------+------------------------------------
socket -> sde                    | socket -> se (socket d'écoute)
                                 | bind   -> se est lié à une adresse
                                 | listen -> se écoute les demandes de connection
connect -> demande de connection | accept -> accepter une demande -> sd = socket de dialogue
ecriture sur sde   --------------->lecture sur sdl...
lecture sur sde    <---------------ecriture sur sdl...
 
 
 
 5) Libération d'une socket
 
int shutdown( int sd, int mode);
 
mode = 0 -> socket bloqué en lecture
mode = 1 -> socket bloqué en écriture
mode = 2 -> socket complètement fermé
 
 
close (int sd);
Equivalent a shutdown avec mode = 2
 
 
 
 6) Divers
 
*AF_UNIX
unlink(char *) -> supression du pseudo fichier ("sun_path" )
A NE PAS OUBLIER EN FIN DE FICHER, SINON ERREUR BIND QD ON RELANCE LE PROG
 
*Gestion des erreurs
perror
 
*Fonction de conversion d'entiers
htons ou htonl (host to network short/long)
ntohs ou ntohl (network to host short/long)

n°66521
bjbebert
Posté le 19-10-2001 à 21:46:34  profilanswer
 

Regarde dans MSDN l'aide sur les fonctions socket, send, recv, connect... C'est plutot bien explique.
Si t'as des questions, n'hesite pas a me mailer.

n°66557
slvn
Posté le 20-10-2001 à 13:13:09  profilanswer
 

ok, merci chadenat pour ce lien :)
 
merci aussi a toi lolo pour ton cours, qui a l air bien synthetisé donc c un bon point pour commencer :)
 
enfin, merci a toi aussi bjbebert,  je ne suis pas tres frillant de msdn car j aurais voulu utiliser les socket sous linux, mais je ne manquerasi pas de regarde l aide de msdn

n°66561
[ ZeD ]
Désigné volontaire
Posté le 20-10-2001 à 14:19:31  profilanswer
 

merci bien pour le lien et le cours !
 
je vais me plonger dedans et voir ce que ça donne  ;)
 
@+ !


---------------
The N·Zone New Formation Official Website
n°66597
slvn
Posté le 20-10-2001 à 17:49:16  profilanswer
 

socket = extension de la notion de descripteur de fichier  
-> caractérisé par un descripteur inséré ds la table des descripteurs d'un process
-> utilisation des fonctions standard
 
j ai l impression que je vais pas tout comprendre snas les episodes precedents ;)
 
en fiat meme je comprends rien lol :)

n°66598
slvn
Posté le 20-10-2001 à 17:49:49  profilanswer
 

socket = extension de la notion de descripteur de fichier  
-> caractérisé par un descripteur inséré ds la table des descripteurs d'un process
-> utilisation des fonctions standard
 
j ai l impression que je vais pas tout comprendre snas les episodes precedents ;)
 
en fiat meme je comprends rien lol :)

n°66599
slvn
Posté le 20-10-2001 à 17:50:25  profilanswer
 

socket = extension de la notion de descripteur de fichier  
-> caractérisé par un descripteur inséré ds la table des descripteurs d'un process
-> utilisation des fonctions standard
 
j ai l impression que je vais pas tout comprendre snas les episodes precedents ;)
 
en fiat meme je comprends rien lol :)

n°66668
__Lolo__
C&#039;est pouleversant !
Posté le 21-10-2001 à 11:59:23  profilanswer
 

ct un cours unix a la base :D
c juste pr dire qu'une socket c en gros un n° qui caractérise ta connexion, comme le descripteur de fichiers est un n° qui caractérise ton fichier dans le systeme de fichier
ca se manipule de la meme facon, avec des fonctions C standard
 
(en gros, tu peux zapper si tu captes pas :D :D)

 

[edtdd]--Message édité par __Lolo__--[/edtdd]

mood
Publicité
Posté le 21-10-2001 à 11:59:23  profilanswer
 

n°66691
slvn
Posté le 21-10-2001 à 16:37:32  profilanswer
 

t inquiete je capte :) i am a unix lover :)
mais enfait c pas super detaillé.....faut deja s y connaitre

n°66692
verdoux
And I'm still waiting
Posté le 21-10-2001 à 16:42:46  profilanswer
 

Surtout que les sockets windows sont différents des sockets unix.

n°66702
slvn
Posté le 21-10-2001 à 17:15:13  profilanswer
 

yep, mais justement, c etiat pour unix :)

n°66704
slvn
Posté le 21-10-2001 à 17:17:27  profilanswer
 

oups je viens de voir que je me suis incrusté dans le topic de [ ZED ]......je sais pas pourquoi masi je croyais vraiment en etre l auteur lol....j ai du confondre avec un topic au meme titre, desole

 

[edtdd]--Message édité par slvn--[/edtdd]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Recherche cours sur les sockets

 

Sujets relatifs
[php] session_start seulement s'il y a une session en coursidée de nouveau format son.... à méditer -> recherche codeur pour aide
[HTML] recherche "dico des bannières"referencement moteurs de recherche
Jacky PC recherche un webmaster/webdisigner[PHP] recherche tutorials sur PHP que l'on peut downloader
Trouver des cours !!!!cours de HTML
[ADA] URGENT ! recherche logiciel[php mysql] recherche dans une db sur différentes tables...
Plus de sujets relatifs à : [C++] Recherche cours sur les sockets


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR