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

Web & réseau Delphi Discussion :

serveur de jeu indy getstatus


Sujet :

Web & réseau Delphi

  1. #1
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 991
    Par défaut serveur de jeu indy getstatus
    bonjour, j'ai trouvé ceci
    http://www.developpez.net/forums/d39...r-serveur-jeu/

    j'ai aussi des scripts php qui fonctionne très bien

    mais avec delphi j'obtiens "disconected"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.Button1Click(Sender: TObject);
    Var
      MonObjet : TIdUDPClient ;
      Reponse : String ;
    Begin
    MonObjet := TIdUDPClient.Create(Nil);
    MonObjet.Host := '91.121.54.64'; {Ici L’IP du serveur}
    MonObjet.Port := 1024; {Et là le son N° de Port}
    MonObjet.ReceiveTimeout := 850; {Le tps maxi en ms pour une réponse}
    MonObjet.Send(chr(255)+ char(255) + chr(255)+ char(255) + 'getstatus'+ chr(13)+ char(10)); {On envoi la requête}
    Reponse := MonObjet.ReceiveString; {Ici on reçoit la réponse à la requête}
    MonObjet.Free;
    showmessage(reponse);
    End;
    j'ai essayé avec tudpsocket j'obtient du vide

    merci d'avance

  2. #2
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 991
    Par défaut
    bon sous d2007 pas de soucis,
    nouvelle application vcl avec ceci et sa fonctionne:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;
     
    type
      TForm1 = class(TForm)
        IdUDPClient1: TIdUDPClient;
        Memo1: TMemo;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ReponseServ:string;
    begin
      ReponseServ:='';
     
      IdUDPClient1.Active :=False;
      IdUDPClient1.Host:='91.121.54.64';
      IdUDPClient1.Port :=1024;
      IdUDPClient1.ReceiveTimeout:=2500;
      IdUDPClient1.Active :=True;
      IdUDPClient1.Send('ÿÿÿÿgetstatus'); //ENVOI LA REQUETE
     
      ReponseServ := IdUDPClient1.ReceiveString (-1); //RECEPTION DE LA REPONSE
     
      memo1.Clear;
      memo1.Lines.Add(ReponseServ);
    end;
     
    end.
    donc sa vient de D2009 car j'ai oublié de préciser dans mon message précédent que mon projet était créé avec cette version.

    je pense que c'est du à la gestion de l'unicode, et que le message envoyé n'est pas correct. Pour sa la réponse est vide ou "disconnect". Mais quoi faire je ne sais pas encore et si quelqu'un sait je lui en serait très reconnaissant.

    merci

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    pê suffit-il de déclarer des AnsiString, dont l'une pour le Send :
    envoi:=#255#255#255#255'getstatus'#13#10;
    le chr() de D2009 renvoie pê nativement de l'unicode ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    pê suffit-il de déclarer des AnsiString, dont l'une pour le Send :
    envoi:=#255#255#255#255'getstatus'#13#10;
    le chr() de D2009 renvoie pê nativement de l'unicode ?
    oui, et il faut vérifier la type de paramètre de IdUDPClient1.Send() car Delphi fait des conversions automatiques entre AnsiString et WideString
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 991
    Par défaut
    merci pour vos réponses
    prend un string en paramètres
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ÿ char(255) chr(255) #255
    pff 2 jours dessus je vais passer à autre chose j'y reviendrai après parce-que je ne vois pas de solution la.

    merci en tout cas de m'avoir lu.

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    dans ce cas, tenter un SendBuffer(@envoi[1], Length(envoi))
    à condition que D200x autorise une telle syntaxe !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 991
    Par défaut
    non sa ne va pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure SendBuffer(
        AHost: string, 
        const APort: Integer, 
        const AIPVersion: TIdIPVersion, 
        const ABuffer: TIdBytes
    ); virtual; overload;
    si je crée un objet a partir de TIdUDPClient
    et que je récris la méthode send pour quel prenne en paramètre un ansistring
    sa devrait fonctionner?
    je vais essayer.

    bon avec TUdpSoket j'arrive a envoyé une commande formaté correctement avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      envoie: PAnsiChar;
    begin
      envoie := #255#255#255#255'rcon pass set test ok'#13#10;
      UdpSocket1.RemoteHost := 'ip';
      UdpSocket1.RemotePort := 'port';
      UdpSocket1.Active := true;
      UdpSocket1.SendBuf(envoie^, length(envoie), 0);
      UdpSocket1.Active := false;
    mais pour la réponse je trouve pas, il y a pas un pro de l'udp qui pourrait juste me donner le chemin

    avec le composant ics TWSocket même combat, la commande passe mais pas de retour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Reponse : String ;
      envoie:pansichar;
    begin
    envoie := #255#255#255#255'rcon pass set test wss'#13#10;
    reponse := 'rien';
    ws.addr:='ip'; // IP c l'adresse du serveur
    ws.Port:='port'; //c le port du jeu
    ws.Connect;
    ws.SendStr(envoie);
    ws.Close;
    end;

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

Discussions similaires

  1. Questions relative au dev d'un serveur de jeu.
    Par hickscorp dans le forum Langage
    Réponses: 18
    Dernier message: 22/11/2006, 13h23
  2. Réponses: 3
    Dernier message: 19/07/2006, 21h54
  3. Comment créer un serveur FTP avec Indy ?
    Par Matt2094 dans le forum Delphi
    Réponses: 2
    Dernier message: 03/06/2006, 12h23
  4. Comment interroger un serveur de jeu ?
    Par RazielReaver dans le forum Web & réseau
    Réponses: 5
    Dernier message: 28/06/2005, 12h12
  5. Serveur TCP/IP Indy bloquant ?
    Par f6dqm1 dans le forum Web & réseau
    Réponses: 6
    Dernier message: 07/12/2004, 09h08

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