On Mon, 3 Oct 2011 14:02:07 +0200 - Félix Hauri <[email protected]> wrote:
> Mais là, ``plus facile'', je n'en suis pas sûr: Soyons correcte, meme si PHP a des defauts, il n'y a aucun doute qu'il est le mode/langage le mieux supporte/repandu chez les hebergeurs. On peut ne pas aimer mais c'est un fait a mon avis incontestable > Je ne crois pas que ce soit > possible en PHP, ou du moins pas ``facilement''. Oh la... PHP est un vrai langage de programmation... il est en tout cas plus adapate a traiter de multiples sockets et des threads que certains langages de scripting que je ne nommerai pas... :-) > Si je sais gérer les sockets unix en PHP, je ne sais pas faire un > veritable serveur (avec accès concurrents, via ``select'', pas encore > implémentés dans la version perl actuelle, mais en prévision pour une > très prochaine version). http://php.net/manual/en/function.socket-select.php... Franchement, c'est le premiere lien obtenu en tapant "php select socket" dans google :-) > Le but sera de gérer *tous* les sockets en mode non-bloquant et là, > je doute que PHP me permette de le faire. Aie... Bien au contraire... j'ai fait ca il y a des annees en PHP et je doute que l'on ait enleve la fonctionalite depuis :-) PHP est un langage de programmation interprete dont le but etait de rendre les choses plus accessibles (au niveau logistique) que le C/C++. PHP a donc acces a quasi toutes les librairies de C ! Il est donc facile de transposer des codes C en PHP... Cette fonctionalite est aussi facile a mettre en oeuvre en C et en Python. En Java... c'est (comme dab) un peu plus lourd et ile est recommande d'utiliser les 'selector', plutot que le classique select() de java.io; d'ailleurs il est aussi recommande, depuis 2002, d'abandonner java.io au profit de java.nio... En Python, il y a aussi un module 'asyncore' (http://docs.python.org/py3k/library/asyncore.html?highlight=asyncore#asyncore) qui se rapproche des selector en java, tout en etant beaucoup plus facile a mettre en oeuvre. Par curiosite, et ne pratiquant plus PHP depuis fort longtemps, j'ai quand meme trouve ceci sur le net (sans effort... encore le premier lien de 'php socket selector') : http://thethoughtlab.blogspot.com/2007/04/non-blocking-io-with-php-mio.html Je n'aime pas non-plus PHP, mais c'est neanmoins un langage bien adapte a traiter ce genre de probleme. Il est par contre evident que vouloir traiter des 'concurent/non-blocking io' ou des threads avec des langage de scripting classiques est clairement... 'overkilling'. Sans compter que l'absence de 'try/catch/except' pour le traitement des exceptions doit rendre le code particulierement difficile a lire et a maintenir. Or, ce genre de traitement est indiscociable des sockets et des non-blocking io. dc _______________________________________________ gull mailing list [email protected] http://forum.linux-gull.ch/mailman/listinfo/gull
