ACCEPT_CONNECT |
Accepte une connexion |
---|---|
PHP 4.0.2 à 4.3 |
Syntaxe
function accept_connect($expression) |
Paramètres
Nom | Description |
---|---|
$expression | Ce paramètre permet d'indiquer le socket. |
Retour
Valeur | Description |
---|---|
-1 ou inférieur | Ces valeurs permettent d'indiquer que l'opération à échoué. |
0 ou supérieur | Ces valeurs permettent d'indiquer le descripteur de socket et que l'opération à réussis. |
Description
Cette fonction permet d'accepter une connexion entrantes sur un socket. Cette fonction est obsolète, elle a été remplacé par la fonction socket_accept.
Algorithme
MODULE ACCEPT_CONNECT(server_socket) Créer un nouveau socket pour accepter la connexion Accepter la connexion entrante en appelant socket_accept sur le socket serveur SI la connexion est réussie ALORS Lire les données envoyées par le client à travers le socket accepté Traiter les données reçues Répondre au client si nécessaire SINON Gérer l'erreur de connexion FIN SI |
Remarques
- OBSOLETE : Cette fonction est maintenant obsolète. Elle a été remplacé par la fonction socket_accept, laquelle offre des possibilités similaires et est beaucoup mieux supporté par les systèmes d'exploitation modernes.
- Si une erreur se produit durant l'appel de cette fonction, il est possible d'obtenir le message correspondant au code retourné par cette fonction en utilisant la fonction «strerror()».
- Ancien nom de socket_accept : Avant PHP 4.3, la fonction permettant d'accepter une connexion sur un socket s'appelait accept_connect. Ce nom a été remplacé par socket_accept pour harmoniser les noms des fonctions de l'extension sockets et éviter toute confusion avec d'autres termes liés aux connexions réseau.
- Rôle dans la gestion des connexions réseau : accept_connect était utilisée dans un serveur TCP pour accepter les connexions des clients après qu'un socket ait été mis en écoute avec listen. Sans cette fonction, le serveur ne pouvait pas interagir avec les clients et restait bloqué dans l'attente d'une connexion.
- Blocage du script par défaut : Par défaut, accept_connect fonctionnait en mode bloquant, ce qui signifiait que le script s'arrêtait en attendant qu'un client se connecte. Cela pouvait ralentir l'exécution du programme si aucune connexion n'était établie, nécessitant parfois l'utilisation de socket_set_blocking (anciennement set_socket_blocking) pour gérer un mode non bloquant.
- Retourne une nouvelle ressource socket : Lorsqu'une connexion était acceptée, accept_connect retournait un nouveau socket représentant la communication avec le client. Ce socket devait être géré séparément du socket d'écoute original, permettant ainsi d'interagir avec le client de manière indépendante.
- Incompatibilité ascendante avec PHP 4.3+ : À partir de PHP 4.3, accept_connect a été définitivement supprimée au profit de socket_accept. Les scripts utilisant cette ancienne fonction devaient être mis à jour pour éviter des erreurs fatales indiquant que accept_connect n'existait plus.
- Gestion des erreurs en cas d'échec : Si accept_connect échouait, elle retournait false. Les raisons pouvaient inclure un socket non valide, une erreur de connexion réseau ou une mauvaise configuration des permissions. Il était recommandé d'utiliser socket_last_error pour obtenir des détails sur l'échec.
- Utilisation avec des sockets TCP et UDP : accept_connect était principalement utilisée pour les connexions TCP, où un lien permanent était établi entre le serveur et le client. Pour UDP, étant un protocole sans connexion, l'utilisation de cette fonction n'était pas appropriée, car UDP fonctionne avec des datagrammes indépendants.
- Nécessité de fermer le socket après utilisation : Une fois la communication avec un client terminée, il était impératif de fermer le socket retourné par accept_connect avec close (renommé plus tard en socket_close). Oublier de fermer les sockets pouvait entraîner une consommation excessive des ressources système et des erreurs comme "too many open files".
Voir également
Langage de programmation - PHP - Référence de procédures et fonctions - bind
Langage de programmation - PHP - Référence de procédures et fonctions - connect
Langage de programmation - PHP - Référence de procédures et fonctions - listen
Langage de programmation - PHP - Référence de procédures et fonctions - socket
Langage de programmation - PHP - Référence de procédures et fonctions - strerror
Références
PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 356
Dernière mise à jour : Dimanche, le 20 avril 2014