1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2016
    Messages : 4
    Points : 2
    Points
    2

    Par défaut Utilisation des sockets

    Bonjour à tous.
    Je viens ici car j'aurais besoin d'aide dans le développement d'une de mes application Android. Je voudrais mettre en place une connexion Rcon. D'après ce que j'ai vue de la doc il n'y a que le socketudp qui peut répondre à mon besoin. Le problème cest que malgré les exemples je n'arrive pas à utiliser ces sockets.

    Merci de votre aide si vous avez déjà fais ou si vous avez une idée
    PS : Je rajoute le code que j'ai fais plus tard je ne les pas de dispo à ce moment la ^^'

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2016
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Voici le code mis que j'ai réalisé :

    Code windev : 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
    //Ouverture UDP
    SocketCréeUDP("Rcon",<Port Rcon>)
    //SocketChangeModeTransmission("Rcon",SocketSansMarqueurFin)
     
    //Création du packet
    Vs_Commande est une chaîne
     
    Vs_Commande = ""
     
    Vb_Buf est un Buffer
    Vb_Buf[[1]] = Taille(Vs_Commande) + 9; //Packet Size (Integer)
    Vb_Buf[[4]] = 0; //Request Id (Integer)
    Vb_Buf[[8]] = 3; //SERVERDATA_EXECCOMMAND / SERVERDATA_AUTH (Integer)
    Vb_Buf[[12 A Taille(Vs_Commande) -1]] = Vs_Commande
     
    //POUR X = 0 A Taille(Vs_Commande) -1
    //	Vb_Buf[[12+x]] = Droite(Gauche(Vs_Commande,x+1),1)
    //FIN
    Vb_Buf[[12+Taille(Vs_Commande)+1]] = ""
     
    //Envoi du packet ? 
    SocketEcrit("Rcon",Vb_Buf,<serverip>,<Port Rcon>)
     
    //Récupération de la réponse ?
    Vb_Buf2 est un Buffer
    Vb_Buf2 = SocketLit("Rcon")

    Voici la documentation que j'utilise pour crée mon packet : https://developer.valvesoftware.com/...ng_Source_RCON

    Merci de votre aide

  3. #3
    Expert éminent
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    janvier 2009
    Messages
    3 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : janvier 2009
    Messages : 3 464
    Points : 7 316
    Points
    7 316

    Par défaut

    Bonjour,
    Je vois un problème dans ton affectation:
    Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
    Vb_Buf[[12 A Taille(Vs_Commande) -1]] = Vs_Commande

    Si vs_commande fait 8 octets, tu affectes le tableau de [[12 A 7]], et toujours avec la même valeur: vs_commande. Il ne faudrait pas plutôt prendre chaque octets de cette chaine ?
    Ensuite tu fais Vb_Buf[[12+Taille(Vs_Commande)+1]] = ""
    Mais que devient du coup vb_buf[[12 + taille(vs_commande)]], qui n'est jamais affecté ?

    Tatayo.

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2016
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Ah en effet j'ai donc mis en place ce code :

    Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //On rempli le buffer Octet par Octet
    POUR X = 0 A Taille(Vs_Commande) -1
    	Vb_Buf[[12+X]] = Droite(Gauche(Vs_Commande,X+1),1)
    FIN
     
    //Passage du caractères de fin dans le buffer
    Vb_Buf[[12+(12+Taille(Vs_Commande)) +1]] = EOT

    Je ne sais pas si mon découpage est correct :/
    En tout cas je n'est toujours pas de réponse du Rcon

    Merci de votre aide

  5. #5
    Expert éminent
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    janvier 2009
    Messages
    3 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : janvier 2009
    Messages : 3 464
    Points : 7 316
    Points
    7 316

    Par défaut

    Pour moi ce n'est toujours pas bon.
    Le dernier caractères de vs_Commande est affecté à vb_buf[[12 + taille(vs_commande) -1]].
    Donc le EOT doit être mis dans vb_buf[[12 + taille(vs_commande)]], or tu le mets dans vb_buf[[12 + 12 + taille(vs_commande) + 1]].
    Par exemple si la chaine fait 8 caractères, tu mets le EOT à la position 31 au lieu de la position 19...
    A mon avis le mieux serait en premier de valider le contenu de vb_buf, par exemple en remplissant un tableau de caractères au lieu d'un buffer.
    Une fois que le contenu sera correct, tu pourras passer au socket.

    Là je te conseille de vérifier le retour de SocketEcrit, comme expliqué dans l'aide en ligne.

    Tatayo.

    P.S. au lieu de faire un droite(gauche()), tu peux aussi utiliser la fonction Milieu(), ou l'opérateur [[]], ce sera plus lisible.

Discussions similaires

  1. Utilisation des Socket
    Par Bull_ dans le forum C++
    Réponses: 4
    Dernier message: 11/03/2007, 15h48
  2. [c#] Utilisation des sockets
    Par zwoke dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/09/2006, 09h28
  3. [Socket][C++]Utilisation des sockets sur internet
    Par ChriGoLioNaDor dans le forum Développement
    Réponses: 8
    Dernier message: 13/01/2006, 21h38
  4. [MFC] Faible utilisation des sockets via les MFC ?
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 25/08/2005, 17h15
  5. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24

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