![]() |
|
|||||||
Accueil |
S'inscrire |
FAQ |
Glossaire |
Membres |
Calendrier |
Ouvrir sur le forum | Recherche | Messages du jour | Marquer les forums comme lus |
| Tutoriels Tutoriels dédiés au développement sur Nintendo DS |
| Publicité |
![]() |
|
|
Outils de la discussion | Modes d'affichage |
|
|
#1 |
|
Membre confirmé
Date d'inscription: 12/01/2006
Localisation: Terre
Messages: 434
|
Réaliser une connection simple entre deux ds par wifi Intro : Nous réaliserons un programme simple côté serveur puis côté client. Ce programme se chargera d'afficher un texte si l'écran tactile de l'autre ds est touché. Nous utiliserons PALib pour sa fonction PA_ConnectWifiWFC(). Les autres fonctions utilisées proviendrons de la lib wifi. Pour communiquer les ds vont utiliser des sockets. Les données seront envoyées et reçues par les fonctions send() et recv(). Avant de commencer nous allons placé ces deux lignes en haut de la fonction main : Code PHP:
1. La structure sockaddr_in : Code PHP:
Nous allons donc en déclarer deux : Code PHP:
Code PHP:
2. Creation du socket :Pour créer un socket il faut utiliser la fonction : Code PHP:
Nous y ferons appelle ainsi : Code PHP:
3. Association a un port :Une fois le socket créé il faut l'associer avec un port. Pour cela nous utiliseront bind(). Code PHP:
Code PHP:
4. Écouter sur le socket :Nous allons désormais écouter sur le socket a l'aide de listen(). Code PHP:
Code PHP:
5. Accepter les connections :Pour finir nous allons accepter les connections entrante grace a accept(). Code PHP:
Elle renvoie une nouveau descripteur de socket que nous allons récupérer dans une nouvelle variable de type int. Nous y ferons appelle ainsi : Code PHP:
1. L'ip du serveur :Les adresse ip sont contenu dans des variable de type long. Code PHP:
Par exemple : Code PHP:
Code PHP:
Code PHP:
Code PHP:
2. sockaddr_in pour les infos du serveur :Nous avons recuperé l'ip dans un long maintenant nous allons devoir crée une structure sockaddr_in : Code PHP:
3. Creation du socket :Nous allons passer a la création du socket : Code PHP:
4. La connection au serveur :La connection au serveur de fait a l'aide de la fonction connect(). Code PHP:
Code PHP:
Nos deux ds sont désormais connectées, nous allons donc pouvoir utiliser send() et recv() pour transférer des données. Notez que la ds serveur doit être allumer avant la ds client car connect() doit être appelé après accept(). Pour éviter se problème vous pouver faire appel a connect() lors de la pression d'une touche. 1. send() :Voici le prototype de la fonction send : Code PHP:
2. recv() :Voici le prototype de la fonction recv : Code PHP:
La fonction recv() et une fonction bloquante, c'est a dire qu'elle bloque l'exécution du programme jusqu'à la réception d'un paquet. Pour éviter cela on peut rendre le socket non bloquant : Code PHP:
4) Exemple d'utilisation : Maintenant que les deux ds peuvent communiquer, nous allons réaliser la partie du programme qui affiche un texte lorsque l'écran de l'autre ds est touché. Nous allons d'abord déclarer deux booléens : Code PHP:
Code PHP:
Dernière modification par Samote ; 07/04/2007 à 13h19. |
|
|
|
| Publicité |
|
|
#2 |
|
Membre confirmé
Date d'inscription: 12/01/2006
Localisation: Terre
Messages: 434
|
Je n'ai pas expliqué les sockets en profondeur. Le but est de mettre en place un truc fonctionnel rapidement.
|
|
|
|
|
|
#3 |
|
Membre confirmé
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 569
|
Tu devrais préciser, "avec un AP" dans le titre, car j'ai cru que t'avais fait un tuto direct DS
![]() |
|
|
|
|
|
#4 |
|
Membre confirmé
Date d'inscription: 12/01/2006
Localisation: Terre
Messages: 434
|
C'est fait. Désolé pour la fausse joie.
|
|
|
|
|
|
#5 |
|
Administrateur
|
merci beaucoup pour ce tuto, c'est du très bon travail
![]()
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] Projet en cours: [Blob Runner] |
|
|
|
|
|
#6 |
|
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 574
|
Merci enormement moi qui essayer de faire ca en passant par un PC
MERCI ![]()
__________________
|
|
|
|
|
|
#7 |
|
Into the Box
Date d'inscription: 10/11/2005
Localisation: Montréal
Messages: 3 904
|
Oui, merci énormément pour tes tutos ! C'est super sympas et ça peut être vraiment utile pour ceux qui en on besoin !
![]()
__________________
Jeux vidéo du moment:Atmel AVR32 , MPLab , Adobe Acrobat Reader , Eagle
|
|
|
|
|
|
#8 |
|
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 574
|
Et si plusieur DS sont connecté au même serveur peut on envoyer un socket a une seule DS grace à son addresse MAC ?
__________________
|
|
|
|
|
|
#9 |
|
Membre confirmé
|
Si plusieurs DS sont connectées, tu conserves l'ordre de connexion de chaque console et tu mets le socket correspondant dans un tableau. Tu auras donc genre socket[0] le socket du premier connecté, socket[1] le second ...
ainsi, tu pourras communiquer avec toutes les DS, pas besoin de connaître l'adresse MAC |
|
|
|
|
|
#10 |
|
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 574
|
Merci mais moi ça m'arrengerai d' envoté des socket avec l'adresse mac parce que je veux que plusieurs DS se connecte au serveur puis je par exemple que ma DS envoie une donné à la DS ayant pour addresse MAC fc:67:a7:0A(par exemple)
__________________
|
|
|
|
|
|
#11 |
|
Membre confirmé
|
tu peux le faire toi même
quand une DS se connect à ton serveur, elle envoie son adresse MAC au serveur. A partir de là, tu fais un lien entre le socket et l'adresse MAC et hop la, tu peux savoir quelle adresse MAC à quel socket |
|
|
|
|
|
#12 |
|
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 574
|
merci
![]()
__________________
|
|
|
|
|
|
#13 |
|
Modérateur
Date d'inscription: 28/02/2007
Localisation: Grenoble
Messages: 574
|
J'ai encore une autre question (
Qu'est ce qu'il est chiant celui là)Je voudrai que deux DS connecté a deux routeur différent puissent s'échangé des donné. Je pensai que peut être avec un serveur cela serait possible mais je veux pas d'un serveur en .exe mais un serveur en nom de domaine.
__________________
|
|
|
|
|
|
#14 |
|
Membre
Date d'inscription: 23/03/2009
Messages: 10
|
Bonjour,
J'ai testé ce tuto mais je n'arrive pas à l'arranger pour se connecter à un serveur FTP sur un PC via une connexion sécurisé (user, password). Ou et Comment doit on envoyer ces infos au serveur ? |
|
|
|
![]() |
| Liens sociaux |
| Publicité |
| Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s)) | |
| Outils de la discussion | |
| Modes d'affichage | |
|
|