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 :

Socket en PHP


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Socket en PHP
    Bonjour je suis confirmé en langage PHP, mais à ce jour je doit travaillé avec des socket, la s'est une découverte!

    Je doit informer une application sur un PC qu'une nouvelle entrée et faite dans une table de phpmyadmin.

    Moi je gère que l'envoi l'application s'est un de mes camarade qui doit le faire.

    Le problème après avoir lut plusieurs article je sais pas par où commencé.

    Cordialement,
    Jérôme

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    comment fonctionne appli qui reçoit ? plutôt quelles sont les informations a envoyer et sous quel format (le comment étant ta question)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    L'application de reception et en C#
    Moi un site en PHP.

    Je doit juste dire: "Une nouvelle fiche viens d'être arrivé."

    Après l'application n'est pas terminé et serra surement jamais fait mais mon cahier des charges me l'oblige, donc je sais pas comment faire

    Après la je suis sur windows mais le serveur va être en linux à l'avenir.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    faut en dire plus, y'a plein de manière de le faire, faut d'abord savoir "quoi" avant de savoir "comment"

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Je vais essayé mais comme j'ai dit je sais pas par où commencé.

    Première une j'ai une applications PHP et Android qui enregistre des recettes dans la table recettes.

    Cette table comporte: id, nom, recette, commentaire.

    Lorsque dans cette table on ajoute une recette, je voudrais que l’application en C# reçoit: "Une nouvelle fiche viens d'être arrivé."

    Ce que j'ai oublié s'est:

    S'est qu'il existe une table appelé: "connections" avec pour champs "IdEmploye" et "adresseIP" de ceux qui sont connectés. Adresse IP de la machine nous sommes dans le cas ou s'est exclusivement un réseaux local.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Je vois bien, mais il faut décidé comment faire ça si rien n'as été fait encore

    C# qui checker le PHP tout les X temps
    C# avec un socket d'ouvert, le PHP écrit dans le socket
    C# et PHP connecter a un serveur WebSocket

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    J'élimine la première solution qui ne va pas avec le cahier des charges.

    Et les 2 autres la différences concrètement niveau utilisation?

    Il faut savoir que d'une manière ou d'une autre je doit prouvé que sa fonctionne au chef sans possédé l'application C#. Mais on m'a dit qu'il existe des logiciels pour simuler tels que Hercule.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    oui mais faut bien savoir comment si prendre,

    c'est comme si on te demandai de faire une télécommande de télé sans savoir comment la télé reçois les infos : IR, Wifi, Bluetooth, Radio ?

    sans savoir comme c'est géré coté C# c'est pas possible

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Ah d’accord mais vu que mon collègue n'a pas fait la partie réception et compte pas la faire...

    Donc actuellement il à rien et au pire des cas il se pliera à ce que j'ai fait, et je lui donnerai un coup de main.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Dans la cas ou c'est juste PHP -> C#
    C'est tout simple, le gros boulot etant le coté C#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($connections as $connection) {
        $socket = stream_socket_client($connection->ip);
        stream_socket_sendto($socket, "Une nouvelle fiche viens d'être arrivé.");
        stream_socket_shutdown($socket);
    }
    pas contre y'a aucun contrôle ni rien

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Bon je dois pas envoyé le message à tous mais que a certain employés sellons l'id de la recette qui n'est pas un auto incrémente mais une Id du destinataire qui correspond a IdUtilisateur si il est connecté.

    J'ai donc ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
     
    	try {
    		$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT;
    		$bdd = new PDO('mysql:host=localhost;dbname=lesrecettes', 'root', '', $options);
    	}
     
    	catch (Exception $e){
    		die('Erreur : ' . $e->getMessage());
    	}
     
    	$utilisateur = $bdd->prepare("SELECT `idutilisateurs` FROM `affectations` WHERE `recette` = ? LIMIT 1;");
    	$utilisateur->execute(array($idrecette));
    	$utilisateur = $utilisateur->fetch(PDO::FETCH_OBJ);
     
    	$Connecte = $bdd->query("SELECT COUNT(*) FROM connection WHERE `idutilisateurs` = '".$utilisateur->idutilisateurs."';")->fetchColumn();
     
    	if($Connecte > 0){
     
    		//Ouvre une connexion avec l'utilisateur ayant l'IP définit
    		$socket = stream_socket_client($utilisateur->ip);
    		//Envoy du message via la socket
    		stream_socket_sendto($socket, "Une nouvelle fiche viens d'être arrivé.");
    		//Ferme la socket
    		stream_socket_shutdown($socket);
     
    	}
     
    ?>
    Mais comment peut -ont connaître l'ID recette?
    De plus ceci fonctionnera simplement pour l'application PHP et non un socket à l'écoute de BDD?

  12. #12
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    question con, mais pourquoi l'appli cible fait pas une requete quand elle en a besoin directement sur la table ?

    remarque: si tu affiches "Une nouvelle fiche viens d'être arrivé." ya des utilisateurs qui vont se moquer de la tournure choisie.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Jerome1362 Voir le message
    Mais comment peut -ont connaître l'ID recette?
    De plus ceci fonctionnera simplement pour l'application PHP et non un socket à l'écoute de BDD?
    t'envoie ce que tu veux et à qui tu veux, je t'ai montrer le code d'envoie, et PHP envoie sur les sockets c'est coté C# qui écoute le PHP (le socket coté C# reste toujours ouvert)

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Le problème s'est que derrière l'application C# la personne est en charge d'autre boulots. Et elle à besoin de voir rapidement la nouvelle fiche pour la validé dans un temps minimum. Un peu comme avast a fait une mise à jour, ou que tu reçois un mail sur windows live messenger ou thunderbird.

    remarque: Je marque ce qu'on me dit.


    Edit: Oui mais je peus pas récupérer les informations pour $idrecette

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Jerome1362 Voir le message
    Un peu comme avast a fait une mise à jour, ou que tu reçois un mail sur windows live messenger ou thunderbird.
    C'est tout les 3 basés sur une requete tout les X temps (sauf WLM en mode chat)

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    J'ai ordre d'utilisé des sockets et je peu vraiment pas faire l'inverse. Si je peu récupéré $idrecette sa devrait être bon.

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ou est ton $idrecette ?

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    S'est les valeurs ajouté dans la tables recettes, le champs: "id"

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    je vois bien mais elle est définie nulle part

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Je sais bien, je connais comment récupérer le dernier Id mais s'est pas top. A t'il une autre solution?

    Quel logiciel pour que je test?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Socket avec PHP
    Par salmoucha dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2013, 01h06
  2. Socket connexion PHP Java
    Par Soap7 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/09/2012, 13h47
  3. Erreur de sockets avec PHP
    Par vince-29 dans le forum Langage
    Réponses: 4
    Dernier message: 20/01/2010, 18h32
  4. [Réseau] persistance d'une socket en PHP
    Par iznogoud36 dans le forum Langage
    Réponses: 4
    Dernier message: 05/10/2006, 14h47
  5. [PHP-JS] [socket] tchat php - javascript
    Par Sheriff dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/07/2006, 11h15

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