socket_create
Crée un socket
&reftitle.description;
Socketfalsesocket_create
intdomain
inttype
intprotocol
socket_create crée un point de communication
(une socket) et retourne une instance de Socket
Une connexion typique réseau est composée de deux sockets :
une qui joue le rôle de client et l'autre celui du serveur.
&reftitle.parameters;
domain
Le paramètre domain spécifie la famille
de protocoles à utiliser par le socket.
Famille d'adresses / protocoles disponibles
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).
type
Le paramètre type sélectionne le type de
communication à utiliser par le socket.
Types de sockets disponibles
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 sockets.
SOCK_DGRAM
Support des datagrammes (moins de connexion, message non garanti
d'une longueur maximum fixe). Le protocole UDP est basé sur ce
type de sockets.
SOCK_SEQPACKET
Fournit un chemin de transmission de données séquentiel, fiable,
connecté à la base par deux chemins pour les datagrammes de
longueur maximale fixe ; un consommateur est requis 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 sockets
est le traitement des requêtes ICMP (comme le ping).
SOCK_RDM
Fournit une couche fiable de datagramme qui ne garantit 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.
protocol
Le paramètre protocol définit le protocole
spécifique pour le domaine domain à utiliser
lors de communications sur un socket retourné. 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.
Protocoles Communs
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, incertain 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 garantit 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, elle-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 partielle d'enregistrements.
&reftitle.returnvalues;
socket_create retourne une instance 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.
&reftitle.errors;
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).
&reftitle.changelog;
&Version;
&Description;
8.0.0
En cas de succès, cette fonction retourne désormais une instance de
Socket ; auparavant, une resource
était retournée.
&reftitle.seealso;
socket_accept
socket_bind
socket_connect
socket_listen
socket_last_error
socket_strerror