Communication PHP / C++ via un socket UNIX => blocage read/write - PHP - Programmation
Marsh Posté le 06-08-2011 à 23:09:32
man 3 select.
lire et ecrire sur un socket est bloquant. En passant par select tu t'assures (quasiment) que ca ne sera plus bloquant.
Marsh Posté le 09-08-2011 à 14:46:25
Salut,
Merci pour ta réponse.
Le select ne résoudra sans doute pas le problème, mais me permettra sans doute de faire un diagnostic. Les read/write étants bloqués, ils ne renvoyaient pas beaucoup d'erreurs...
Je vais tester ca, et je te donne des news.
Merci
Marsh Posté le 19-08-2011 à 19:17:49
C'est marrant, parce que je suis aussi en train de faire un système de communication inter process, mais moi, c'est php vers php
J'en ai déjà fait un pour mon boulot, mais celui-ci communiquait en utilisant les queues de messages POSIX.
Et j'essaye de voir ce que ça donne avec les socket, j'en suis encore à découvrir les différents types de socket...
Marsh Posté le 02-08-2011 à 00:09:49
Bonjour,
J'ai code un serveur en C++ qui tourne en daemon sur ma machine. Il ecoute sur un socket AF_UNIX (local).
J'ai egalement apache avec php qui tournent sur cette meme machine.
Je lance un script php qui doit se connecter au socket et echanger des donnees avec un thread nouveau du serveur.
Le principe est le meme que HTTP : le script envoie une requete, et le serveur lui repond.
Le client et le serveur parviennent apparement a se connecter, mais se bloquent respectivement sur l'ecriture et la lecture.
Voici un bout de code pour situer le blocage sur les deux parties :
SERVEUR
CLIENT
Ce n'est que lorsque j'eteins le demon que la page PHP se debloque et m'affiche l'erreur 'Failed to write in the socket', preuve que fwrite a foire.
Avez-vous deja eu ce probleme ? Je seche un peu...
Merci pour votre attention
Message édité par Pascal le nain le 02-08-2011 à 13:24:03