8.114 Sockets
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . Erreurs de socket . Exemples . socket_accept . socket_bind . socket_clear_error . socket_close . socket_connect . socket_create_listen . socket_create_pair ->socket_create . socket_get_option . socket_getpeername . socket_getsockname . socket_last_error . socket_listen . socket_read . socket_recv . socket_recvfrom . socket_select . socket_send . socket_sendto . socket_set_block . socket_set_nonblock . socket_set_option . socket_shutdown . socket_strerror . socket_write
|
8.114.16 socket_create()Crée une socket[ Exemples avec socket_create ] PHP 4 >= 4.1.0, PHP 5
resource
socket_create (
int
domain
,
int
type
,
int
protocol
)
socket_create
crée un point de communication
(une socket) et retourne une ressource de socket. Une connexion typique réseau est composée
de deux sockets, une qui joue le rôle de client, et l'autre le rôle du serveur.
Le paramètre
domain
spécifie la famille de protocoles à utiliser par la socket.
Domaine |
Description |
AF_INET
|
Protocole basé sur IPv4. TCP et UDP sont les protocoles communs de cette famille de protocoles.
|
AF_INET6
|
Protocole basé sur IPv6. TCP et UDP sont les protocoles communs de cette famille de protocoles.
Le support a été ajouté en PHP 5.0.0.
|
AF_UNIX
|
Famille de protocoles locales de communication. Le rendement élevé et des moindres coûts
supplémentaires lui font une grande force d'IPC (
Interprocess Communication
).
|
Le paramètre
type
sélectionne le type de communication à utiliser par la socket.
Type |
Description |
SOCK_STREAM
|
Fournit des flux d'octets ordonnancés, fiables, full-duplex, raccordés sur la base.
Un mécanisme de transmission des données "
out-of-band
" peut être supporté.
Le protocole TCP est basé sur ce type de socket.
|
SOCK_DGRAM
|
Support des datagrammes (moins de connexion, message non garantie d'une longueur maximum fixe).
Le protocole UDP est basé sur ce type de socket.
|
SOCK_SEQPACKET
|
Fournis un chemin de transmission de données séquentiel, fiable, connexion à la basé par deux chemins pour
les datagrammes de longueur maximal fixe ; un consommateur est requit pour lire la totalité d'un paquet
avec chaque appel à la lecture.
|
SOCK_RAW
|
Fournit l'accès brut de protocole de réseau. Ce type spécial de socket peut être utilisé
pour construire manuellement tout type de protocole. Une utilisation commune de ce type de socket
est le traitement des requêtes ICMP (comme le ping, traceroute, etc.).
|
SOCK_RDM
|
Fournit une couche fiable de datagramme qui ne garantie pas l'ordre des données.
Ce type de socket est le plus susceptible de ne pas être implémenté sur votre système d'exploitation.
|
Le paramètre
protocol
définie le protocole spécifique pour le domaine
domain
à utiliser lors de communication sur une socket retournée.
La valeur appropriée peut être retrouvée par son nom en utilisant la fonction
getprotobyname
. Si le protocole désiré est TCP ou UDP, les constantes correspondantes
SOL_TCP
et
SOL_UDP
peuvent être utilisées.
Nom |
Description |
icmp
|
Le protocole ICMP (
Internet Control Message Protocol
) est utilisé tout d'abord par les
passerelles et les hôtes pour reporter les erreurs dans des communications de datagramme.
La commande "
ping
" (présente dans les systèmes de production modernes) est un
exemple d'application utilisant le protocole ICMP.
|
udp
|
Le protocole UDP (
User Datagramm Protocol
) est un protocole sans connexion, incertaine avec les longueurs
d'enregistrements fixes. De ce fait,
UDP
requiert une quantité minimum de protocole aérienne.
|
tcp
|
Le protocole TCP (
Transmission Control Protocol
) est un protocole fiable, connecté sur la base,
orienté flux et full-duplex.
TCP
garantie que chaque paquet est reçu
dans l'ordre dans lequel il a été envoyé. Si quelques paquets sont perdus pendant la communication,
TCP
retransmettra ces paquets tant que l'hôte destinataire ne les aura pas
reçu entièrement. Pour des raisons de fiabilité et de performance, l'implémentation
TCP
lui-même décide des frontières appropriées d'octets de la couche fondamentale
de communication du datagramme. Par conséquent, les applications
TCP
doivent autoriser la possibilité de transmission partiel d'enregistrement.
|
socket_create
retourne une ressource de
socket en cas de succès et
FALSE
sinon. Le code
d'erreur généré peut être obtenu en appelant la fonction
socket_last_error
. Ce code d'erreur
peut être passé à la fonction
socket_strerror
pour obtenir un message d'erreur, humainement lisible.
Note |
Si une valeur invalide est spécifiée au paramètre
domain
ou
au paramètre
type
, la fonction
socket_create
prendra comme paramètres par défaut respectivement
AF_INET
et
SOCK_STREAM
et générera un message d'alerte
(
E_WARNING
).
|
Voir aussi
socket_accept
,
socket_bind
,
socket_connect
,
socket_listen
,
socket_last_error
et
socket_strerror
.
|