Il y peu de sources utilisant les sockets ici, aussi voila un exemple de client / serveur en PhP afin d'illustrer l'utilisation des sockets.
Le serveur et le client sont décomposés en deux classe chacun : la classe de base implémentant les mécanismes d'ouverture des sockets, la lecture et l'écriture sur celles ci et tous les mécanismes de base, puis la classe qui va gérer la partie loop et le timeout.
Ici le client et le serveur sont très simplistes et s'échangent bêtement des messages sans s'arrêter mais le fonctionnement est la.
Pour tester cette source je vous conseille fortement d'utiliser Cygwin :)
27 mai 2012 à 09:06
2 mai 2011 à 19:26
Par contre on peu utiliser pcntl_fork puis créer une thread pool mais ca aurai rendu la source trop complexe, mon but c'est de laisser implémenter le comportement:)
2 mai 2011 à 19:11
petite remarque :
la méthode loop de ton client : tu fais un appel récursif sur $this->loop
le problème est que lorsque tu fais un appel récursif, il empile sur le tas tes appels les un après les autres.
Et à un moment donné, ta mémoire sera pleine --> et crack !
il vaut mieux utiliser une boucle while...
public function loop()
{
while ($this->continue)
{
...
$this->listen();
...
}
}
autre remarque :
généralement, sur ce genre de code (qui existe plus en java), on utilise des threads.
Cordialement,
Gigatrappeur
28 avril 2011 à 15:53
Moi je teste en local alors forcement ca marche mais je suis pas sur que tu puisse ouvrir une socket serveur sur n'importe quel port chez un hébergeur classique enfin c'est une idée ^^
28 avril 2011 à 15:49
Donc pas de Cygwin pour moi.
Mais bon on va trouver ... je suis confiant ^^
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.