OVH Cloud OVH Cloud

Ouverture d'un port sur le serveur

15 réponses
Avatar
Julien Arlandis
Bonjour
J'aimerais écrire un petit démon en php. J'aurais aimé savoir si c'est
possible, comment faire pour ouvrir un port en php?
Je parle bien d'une ouverture de port, pas d'une simple connection sur
un serveur distant. Il me semble avoir déjà vu ça mais je ne retrouve
plus le code...
Merci de vos précisions

5 réponses

1 2
Avatar
Julien Arlandis
Qu'est ce que ça change que j'utilise php en tant que module d'apache,
du moment que je ne touche pas au port 8O? Peut être une histoire de
time out?
Au fait, est ce que php sait gérer les threads?



Bon. On (je) t'ai dit que c'est pas fait pour. Si tu veux écrire un
serveur NNTP tu le fais en java, en C, en C++ ou en cobol objet mais
**pas en PHP**. C'est plus clair comme ça ?


J'ai bien compris que PHP n'est pas fait pour, mais alors pourquoi
existe t-il tout de même une fonction create_socket() ?


Avatar
Thibaut Allender

J'ai bien compris que PHP n'est pas fait pour, mais alors pourquoi
existe t-il tout de même une fonction create_socket() ?


et pourquoi les voitures vendues en france peuvent-il rouler a plus de
130 Km/h ?

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
tyoup
Julien Arlandis wrote:

Qu'est ce que ça change que j'utilise php en tant que module d'apache,
du moment que je ne touche pas au port 8O? Peut être une histoire de
time out?
Au fait, est ce que php sait gérer les threads?




Bon. On (je) t'ai dit que c'est pas fait pour. Si tu veux écrire un
serveur NNTP tu le fais en java, en C, en C++ ou en cobol objet mais
**pas en PHP**. C'est plus clair comme ça ?



J'ai bien compris que PHP n'est pas fait pour, mais alors pourquoi
existe t-il tout de même une fonction create_socket() ?



c'est tout à fait possible de le faire en PHP mais utiliser un serveur
web est hors de question. c'est pas propre !

si tu veux créer ton serveur je te conseille d'utiliser l'interpréteur
de script PHP (cli).

cf. http://www.php.net/manual/en/features.commandline.php

--
tyoup



Avatar
eXXos
Bon. On (je) t'ai dit que c'est pas fait pour. Si tu veux écrire un
serveur NNTP tu le fais en java, en C, en C++ ou en cobol objet mais
**pas en PHP**. C'est plus clair comme ça ?


Je suis pas tout à fait d'accord. Prenons l'exemple du serveur HTTP NanoWeb,
entièrement développé en PHP, et qui marche très bien. Même si à l'origine
NanoWeb était plus un "proof of concept" qu'autre chose, reste que
justement,
ça a plutôt bien marché...

D'autre part, il existe d'autres initiatives (genre serveurs SAP RFC, chat
deamons,
infrastructures de routage MOM, etc...) qui s'appuient sur les sockets PHP
et
cela fonctionne très bien...

Maintenant, tout depend de la taille du projet... C'est clair que pour un
serveur NNTP,
c'est pas forcément super intuitif d'aller développer ça en PHP, mais c'est
faisable
et en utilisant correctement les sockets et le modèle objet, on peut s'en
tirer
raisonnablement.

Par contre, tout ceci n'est valable que pour du PHP-CLI. C'est pas destiné à
être lancé via le serveur web...

Xos.

Avatar
John Gallet
Bonjour,

Je suis pas tout à fait d'accord.
Moi non plus d'ailleurs il suffisait de relire ce que j'avais écrit trois

posts avant pour avoir ma position (qui est la même depuis 4 ans sur ce
forum et son ancêtre : à chaque problème la solution technique qui lui est
*la plus adaptée*), mais comme le monsieur était visiblement borné, j'ai
enfoncé le clou.

NanoWeb était plus un "proof of concept" qu'autre chose, reste que
justement, ça a plutôt bien marché...


Et le rapport est ? Tu le mettrais en production ? Moi non. Je n'en vois pas
l'intérêt.


D'autre part, il existe d'autres initiatives (genre serveurs SAP RFC, chat
deamons,
infrastructures de routage MOM, etc...) qui s'appuient sur les sockets PHP
et cela fonctionne très bien...


Oui ça fonctionne. D'ailleurs websphere et weblogic fonctionnent aussi n'est
ce pas ? (cf plus bas).


Maintenant, tout depend de la taille du projet... C'est clair que pour un
serveur NNTP,
c'est pas forcément super intuitif d'aller développer ça en PHP, mais c'est
faisable


Oui, c'est **faisable**.

et le modèle objet,
Ah ça y est le troll nous manquait. Encore un projet où on va avoir 36 fois

le mot 'class' mais pas une seule fois 'extends'.

Par contre, tout ceci n'est valable que pour du PHP-CLI. C'est pas destiné
à

être lancé via le serveur web...
En effet, encore moins.


Maintenant même en ligne de commande (ou pourquoi pas en php-gtk pour avoir
une interface d'admin) PHP ****n'est pas le langage le plus adapté pour
écrire un serveur socket multi-thread/forké****. J'ai pas dit que c'est pas
possible. J'ai dit que c'est un très mauvais choix.

Ce n'est pas parce que les partisans décérébrés de java en collent partout y
compris là où ça rajoute des couches inutiles et des serveurs d'applications
qui servent à rien à part à générer des coûts de licenses et de dépenses
hardware que les partisans de la plateforme php doivent toujours soutenir
que "oui, php est parfaitement adapté à cette tâche là". Un serveur NNTP
écrit en php, je veux clairement pas voir ça sur mes machines de prod.

Donc je clos le sujet en ce qui me concerne en le répétant : OUI on peut
écrire un serveur NNTP en PHP, mais NON ce n'est pas le langage le plus
adapté pour le faire. Après chacun en fait ce qu'il en veut.

JG

1 2