IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sockets] Un serveur en PHP ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Par défaut [Sockets] Un serveur en PHP ?
    tout le monde,

    J'aimerai faire une application client/serveur en php, pour la partie client je sais que php peut utiliser les sockets donc pas de problème. Mais pour la partie serveur, je n'ai vu aucun mécanisme permettant le multi threading, je ne vois donc pas comment on peut gerer plusieurs connexion clientes en PHP.

    Est-il possible de créer un serveur en PHP ? Si oui, avez vous des bons tutos a me montrer ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Si, il est également possible de faire un serveur en PHP (CLI, de préférence!).

    Le fork de process est également possible (mais sous Linux uniquement):
    http://php.net/manual/fr/ref.pcntl.php

    Pour le fork, voici un article intéressant:
    http://www.php-mag.net/itr/online_ar...odeid,114.html

    Et pour un serveur simple, sans fork:
    http://www.devshed.com/c/a/PHP/Socke...ming-With-PHP/

  3. #3
    Membre éprouvé
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Par défaut
    ripat pour tes liens

    Apparement il est donc bien possible de créer un serveur en PHP. Cependant plusieurs chose me dérange :

    Il est impératif pour moi de pouvoir gérer plusieurs clients simultanément. Or dans le manuel pour forker un processus il est dit :
    Cette extension ne doit pas être activée pour une utilisation en serveur web, car les résultats pourraient être inattendus.
    Je ne sais pas pourquoi il disent ça, mais ça tombe mal pour moi.

    Puis sur un autre lien il est dit PHP n'est pas fait pour créer des démon :
    Whilst PHP is not the best tool for creating daemons
    Bref, tout ça confirme mes premières impressions. PHP n'est pas fait pour créer un vrai serveur stable et portable (le forking ne marche pas sous windows).

    Connaissant bien le java, je vais donc le programmer dans ce langage plutôt.

    Cependant j'ai toujours l'espoir de développer le client en PHP, pour ça je pense qu'en lisant le manuel PHP sur les sockets ça devrais aller. Mais encore une fois si vous avez de bon liens qui explique la création d'un client PHP je prend. Et est-il possible de faire communiquer PHP (le client) et Java (le serveur) ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Juste une question toute bête : pourquoi vouloir créer un serveur web de toute pièce alors qu'il en existe de très bons et gratuits comme Apache?

  5. #5
    Membre éprouvé
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Par défaut
    Ola je me suis très mal fait comprendre.

    Je ne veux pas faire un serveur web ! Je veux créer un simple serveur, comme un serveur de tchat, un serveur pour un jeux vidéo on-line etc. Il doit ecouter sur un port précis la connexion de client, qui lui envoi des informations devant être stocké dans une base de données.

  6. #6
    Invité
    Invité(e)
    Par défaut
    C'est ta phrase en réponse au problème de serveur web qui m'a trompé : tu as répondu que ça tombait mal pour toi!

    Bonne continuation dans ton projet!

    webrider

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Citation Envoyé par Fildz
    Je ne sais pas pourquoi il disent ça, mais ça tombe mal pour moi.
    Cette extension ne doit pas être activée pour une utilisation en serveur web, car les résultats pourraient être inattendus.
    Cette remarque concerne les serveurs Web uniquement.

    Citation Envoyé par Fildz
    Puis sur un autre lien il est dit PHP n'est pas fait pour créer des démon :
    Whilst PHP is not the best tool for creating daemons
    Bref, tout ça confirme mes premières impressions. PHP n'est pas fait pour créer un vrai serveur stable et portable (le forking ne marche pas sous windows).

    Connaissant bien le java, je vais donc le programmer dans ce langage plutôt.
    Il y a fort à parier (à vérifier tout de même!) que Java utilise également l'API des Sockets BSD, tout comme PHP . C'est juste la couche d'abstraction qui change. On sous-estime souvent PHP. Mais il est tout a fait capable d'écrire un serveur tenant la route, la gestion des process, fork-child-parent, mémoire partagée permet de tout faire ou presque pour un serveur basique. Ceci-dit, si tu connais mieux Java, c'est effectivement une bonne idée de choisir le langage qu'on maîtrise le mieux.

    Si tu n'as pas envie de te mettre les mains dans le cambouis des fonctions socket de bas niveau de PHP regarde ceci:
    Generic server class based on ext/sockets, used to develop any kind of server.
    http://pear.php.net/package/Net_Server

    Citation Envoyé par Fildz
    Cependant j'ai toujours l'espoir de développer le client en PHP, pour ça je pense qu'en lisant le manuel PHP sur les sockets ça devrais aller. Mais encore une fois si vous avez de bon liens qui explique la création d'un client PHP je prend. Et est-il possible de faire communiquer PHP (le client) et Java (le serveur) ?
    Absolument, le client PHP ne verra qu'un socket où il peut lire et écrire. Que celui-ci soit ouvert par un serveur maison Java, PHP, Apache ou MySQ, peu importe.

    C'est quoi ton projet, un chat?

  8. #8
    Membre éprouvé
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Par défaut
    Merci bien pour toutes ces précisions ripat

    Tu as raison, j'ai pas mal d'apriori sur la faculté de php a créer un serveur. J'ai deja programmer des sockets en C avec fork et tout j'en garde pas vraiment un bon souvenir, comparer a la facilité de java sur ce domaine. (idem pour les signaux que j'ai deja utilisé en shell, je trouve ca drolement limité). Alors quand j'ai vu qu'on me parlais de fork et de signaux ça m'a moyennement plus , mais j'ai peut être eu tord, comme le prouve d'ailleur l'existance de Net_Filter qui semble etre une bonne solution.

    Merci encore,


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Socket TCP, serveur C, client PHP
    Par Alastor Nephos dans le forum Réseau
    Réponses: 5
    Dernier message: 31/03/2009, 14h41
  2. Sockets SSL ( serveur HTTPS )
    Par hexadecime dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/10/2007, 18h02
  3. [Info]serveur apache php + tomcat
    Par estampille dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 31/12/2005, 10h07
  4. XP et serveur Apache/php/mysql
    Par licorne dans le forum Windows XP
    Réponses: 2
    Dernier message: 17/11/2005, 20h11
  5. [Socket] un serveur multi thread
    Par mzt.insat dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/11/2005, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo