Ecoute sur socket

Signaler
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015
-
William847
Messages postés
1
Date d'inscription
mardi 12 novembre 2019
Statut
Membre
Dernière intervention
12 novembre 2019
-
Bonjour,


J'ai une petite question à propos des sockets comment faire pour écouter un message envoyé par un serveur en local sur une socket côté client sans faire une boucle et sans que le client n'envoit de message auparavant ?

En gros comment faire pour lire une socket seulement quand on reçoit un message sur cette socket ?



MErci pour réponse ou infos sur ce sujet !

9 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

Euh... PHP n'est pas un logiciel qui tourne en arrière plan, mais qui exécute des scripts. Donc je doute que tu puisses faire ce que tu veux avec PHP, sans faire de boucle.
D'ailleurs, juste comme ça... Pour écouter un socket, un port ou autre, il faut TOUJOURS faire une boucle, c'est ce que font les logiciels d'écoute, ils bouclent en attendant qu'il y ait quelque chose à traiter... Conclusion...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

Ok merci Neigedhiver ! Autre question est on tjr obligé d'envoyer un message au serveur pour faire un read_socket ?
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

up !
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

Salut,

Euh... PHP n'est pas un logiciel qui tourne en arrière plan, mais qui exécute des scripts. Donc je doute que tu puisses faire ce que tu veux avec PHP, sans faire de boucle.
D'ailleurs, juste comme ça... Pour écouter un socket, un port ou autre, il faut TOUJOURS faire une boucle, c'est ce que font les logiciels d'écoute, ils bouclent en attendant qu'il y ait quelque chose à traiter... Conclusion...


Re Bonjour c'est remoi ;-)


Quelqu'un aurait il un exemple de script d'écoute de socket ?

Merci !
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
Salut,

La doc est là :
http://www.php.net/manual/fr/book.sockets.php

Sa lecture et sa compréhension seront 1000 fois plus performantes que ce qui pourrait t'être dit ici.
Il y a toutes les réponses à tes questions.

La balle est donc dans ton camp.
Si tu rencontres des problèmes de compréhension n'hésite pas à re poster.

Cordialement,

Kohntark -
William847
Messages postés
1
Date d'inscription
mardi 12 novembre 2019
Statut
Membre
Dernière intervention
12 novembre 2019

Thank you for such a wonderful article and sharing. God bless you.!
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
Salut,

Pour écouter un socket, un port ou autre, il faut TOUJOURS faire une boucle, c'est ce que font les logiciels d'écoute, ils bouclent en attendant qu'il y ait quelque chose à traiter... Conclusion...

Non, ça n'a aucun sens.

En gros comment faire pour lire une socket seulement quand on reçoit un message sur cette socket ?

Tu fais un appel à un socket_select() qui sera bloquant. Ainsi le fil d'exécution ton code reste en suspendu jusqu'a ce que select rende la main.
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

Oui mais je vais avoir un message du style : " erreur :l'execution du script prend trop de temps..." et un plantage nan ?

As tu des exemples d'utilisation de socket_select() ?

Merci !
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
Oui mais je vais avoir un message du style : " erreur :l'execution du script prend trop de temps..." et un plantage nan ?

Utilisé comme CGI pour générer une page web oui, mais pas en CLI. Après je ne sais pas ce que tu fais comme projet, tu devrais donner plus de renseignements.
Messages postés
165
Date d'inscription
samedi 8 mai 2010
Statut
Membre
Dernière intervention
3 janvier 2015

Bonjour,


Mon projet est de faire communiquer des ordinateurs entre eux dans un réseau local, je veux que chaque ordinateur puisse se mettre en mode écoute et renvoyer un message en même temps.

J'entends par mode écoute que l'ordinateur connecté n'ai pas à envoyer de message avec socket_write au serveur pour recevoir un message.

J'utilise easyphp accessible en local depuis tous les PC.


Pour ce qui est du CLI je vais regarder mais comment afficher les infos récuperées dans un script CLI ?

Merci pour vos rep ;-)
tu peux avec de l'objet faire des boucles sans utilisé de boucle while ou for... tu peux aussi imaginons dans un tableau déposé une fonction anonyme qui va tester le socket et retourné null ou une valeur ça te permet de savoir quel socket est ok pour être lu en filtrant de ton tableau les valeur null.
Whismeril
Messages postés
14238
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 février 2020
343
BONJOUR si si quand on réveille une discussion endormie depuis 9 ans, saluer est opportun.

Et on va espérer pour bencoandco que depuis le temps il a trouvé une solution.