Merci d'avance
[..] Jeux en résau (2j)
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
Re: [..] Jeux en résau (2j)
Appelle a tout ceux qui savant coder du TCP si ils peuvent me faire un petit exemple avec un scripte serveur pour m'éclaircir les idées
.
Merci d'avance
Merci d'avance
Modifié en dernier par silvere le dim. 20 mai 2012 23:21, modifié 1 fois.
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- matwachich
- Membre émérite

- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Bah, écoute, le TCP (Transfert Control Protocol) c'est un peut compliqué au début. Alors je te conseil de te faire d'abord les dents avec des trucs simples, pour ensuite essayé d'implémenter ce que tu aura appris sur ton jeu.
Si tu regarde dans le Help de mon UDF, tu trouvera 2 exemples de scripts simples:
- Un serveur: c'est en quelque sorte l'arbitre, tous les clients se connectent à lui.
- Un client: c'est un utilisateur si tu veux, il se connecte au serveur. Il peut y avoir plusieurs clients sur un même serveur.
Pour comprendre aussi, un serveur Web (qui contient un site internet) c'est la même chose, et les clients ici ce sont les navigateurs web qui demandent une page.
Si tu regarde dans le Help de mon UDF, tu trouvera 2 exemples de scripts simples:
- Un serveur: c'est en quelque sorte l'arbitre, tous les clients se connectent à lui.
- Un client: c'est un utilisateur si tu veux, il se connecte au serveur. Il peut y avoir plusieurs clients sur un même serveur.
Pour comprendre aussi, un serveur Web (qui contient un site internet) c'est la même chose, et les clients ici ce sont les navigateurs web qui demandent une page.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Re: [..] Jeux en résau (2j)
J'ai compris la logique, mais je sais pas comment faire, j'ai regarder dans l'aide mais j'ai pas réussi pourrait-tu me faire un petit exemple client <==> serveur avec ton udf
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Salut Silvere,
je poste pour te dire que j'ai attaqué un script serveur/client qui colle avec ton projet. Bien sûr, je commenterai (presque) chaque ligne de code puisque c'est plutôt compliqué à comprendre. Manquant de temps, j'espère avoir fini le tout et te l'envoyer dimanche ou lundi soir, sachant que j'ai terminé hier le script serveur.
je poste pour te dire que j'ai attaqué un script serveur/client qui colle avec ton projet. Bien sûr, je commenterai (presque) chaque ligne de code puisque c'est plutôt compliqué à comprendre. Manquant de temps, j'espère avoir fini le tout et te l'envoyer dimanche ou lundi soir, sachant que j'ai terminé hier le script serveur.
Étudiant en 2ème année de Licence Informatique.
- matwachich
- Membre émérite

- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Il y a pourtant un exemple dans le help de l'UDF.
Lance d'abord s.au3, en suite lance autant de fois c.au3 que tu veux.
Lance d'abord s.au3, en suite lance autant de fois c.au3 que tu veux.
- Fichiers joints
-
- Example.zip
- (3.3 Kio) Téléchargé 90 fois
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Re: [..] Jeux en résau (2j)
Super ! Merci beaucoup matwachich, je vais analyser ce scripte et te faire par de mon jeu
.
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Bon, bah je finirai quand même le truc de mon côté, en utilisant les fonctions "natives" d'AutoIt en matière de TCP.
EDIT : Voilà, j'ai finis le petit script TCP contenant serveur/client. Si tu as des questions je ferai en sorte de répondre, et écouter tes critiques ou autres remarques. Le code est commenté à pratiquement chaque ligne pour faciliter la compréhension de celui-ci. J'ai testé un serveur et deux clients sur mon PC et ça a l'air de bien marcher. Il manquera plus qu'à adapter ce script pour le placer dans ton jeu si jamais tu veux le faire avec les fonctions TCP.
EDIT : Voilà, j'ai finis le petit script TCP contenant serveur/client. Si tu as des questions je ferai en sorte de répondre, et écouter tes critiques ou autres remarques. Le code est commenté à pratiquement chaque ligne pour faciliter la compréhension de celui-ci. J'ai testé un serveur et deux clients sur mon PC et ça a l'air de bien marcher. Il manquera plus qu'à adapter ce script pour le placer dans ton jeu si jamais tu veux le faire avec les fonctions TCP.
- Fichiers joints
-
- TCP Silvere.rar
- Archive contenant scripts serveur/client, .exe et les fichiers configs.
- (570.93 Kio) Téléchargé 63 fois
Étudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
O merci beaucoup blacksoul305 !
Edit : le port pour la connexion du premier joueur doit être obligatoirement différent du port pour la connexion du second joueur ?
Edit : le port pour la connexion du premier joueur doit être obligatoirement différent du port pour la connexion du second joueur ?
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
C'est pour faciliter le traitement des données, mais sinon tout peut passer par le même port.
Étudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
@blacksoul305 je sais que tu a déjà fait un super scripte mais pourrais-tu corriger ce petit scripte s'il te plaît :
► Afficher le texte
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
► Afficher le texte
Dis-toi qu'un socket c'est un porte. Tu as deux façons d'ouvrir cette porte :
TCPListen : Tu es l'hôte de la fête, tu ouvres la porte et attend que les personnes rentrent. Dès que quelqu'un se présente au pas de la porte, il faut que tu le fasses rentrer et donc, utiliser TCPAccept.
TCPConnect : Tu es invité à la fête mais tu dois attendre que l'hôte t'autorise à entrer. Si il y a une erreur, c'est que tu t'ais trompé de maison ou alors que tu n'es pas invité !
Cette analogie devra t'aider. A toi de savoir ce que tu veux faire donc.
Étudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
Ha d'accord, mais comment recevoir et envoyer en même temps alors ?
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Ça y est dans mon script :
Si tu es l'hôte, tu reçois quelqu'un ouvrant ta porte. Quelqu'un se présente tu l'acceptes, et ensuite tu peux lui parler. Dans l'ordre on a :
Si tu es l'hôte, tu reçois quelqu'un ouvrant ta porte. Quelqu'un se présente tu l'acceptes, et ensuite tu peux lui parler. Dans l'ordre on a :
Code : Tout sélectionner
TCPListen
TCPAccept
TCPSend ou TCPRecvÉtudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
alors ça donne ceci ?:
► Afficher le texte
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Tiens, voici le code corrigé et commenté !
Code : Tout sélectionner
#include <Inet.au3>
#include <Misc.au3>
Global $port = 80, $packet = "test", $IP = _GetIP, $recv
TCPStartup()
$Mainsocket = TCPListen($IP, $port) ; ici on ouvre la porte et on attend que quelqu'un se présente
If $Mainsocket = -1 Then ; si la porte est vérouillée
MsgBox(16, "Erreur", "création du socket impossible, erreur n°" & @error)
Exit
EndIf
$isConnected = -1 ; on initiliase la variable à -1, c'est à dire que personne s'est présenté
Do
$isConnected = TCPAccept($Mainsocket) ; on accepte une connexion
Sleep(20)
Until $isConnected <> -1 ; tant que personne s'est connecté
While 1
$recv = TCPRecv($isConnected, 9999)
If $recv <> "" Then MsgBox(0, "", "Packet ressus : " & $recv)
If _IsPressed("26") Then
TCPSend($socket, $packet)
MsgBox(0, "", "Packet envoyer : " & $packet)
EndIf
WEndÉtudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
Enfin corriger entre guillemet car il y a encore des erreur
Mais je comprend pas, avec le scripte ci-dessous, il reste dans le boucle do Until
Mais je comprend pas, avec le scripte ci-dessous, il reste dans le boucle do Until
► Afficher le texte
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Bah, non du tout même. Teste ce script, et ensuite lance (en ayant configuré le fichier config correctement) le Client.exe que j't'ai envoyé ce matin :
► Afficher le texte
Étudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
Ha mince je pense que tu n'a pas compris ce que je voulais faire avec ce scripte, c'est qu'il reçoit ce qu'il a envoyer. C'est pour m’entrainer au TCP
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
- blacksoul305
- Membre émérite

- Messages : 957
- Enregistré le : ven. 18 mars 2011 11:49
- Localisation : Au pays des programmeurs.
- Status : Hors ligne
Re: [..] Jeux en résau (2j)
Je pensais bien que ça n'allait pas être possible :
Dans ce script, tu arrives bien à te connecter à toi même, sauf que tu peux pas et envoyer des données, et en recevoir. Donc tu reçois jamais rien.
► Afficher le texte
Étudiant en 2ème année de Licence Informatique.
Re: [..] Jeux en résau (2j)
Je comprend mieux pourquoi je n'y arrive pas car c'est tout simplement impossible 
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.

