05 avr
2007
oyez oyez
oyourd'hui est un grand oyur ... je release la première version du serveur que l'on utilise dans notre homebrew de chat (chaoui) qui est en cours de réalisation.
La partie du client DS fonctionne, mais est encore très laide, donc elle nécessite encore un peu de temps pour être montrable.
Par contre, la partie serveur est opérationnelle pour une V1 (entendez par là que le minimum fonctionne, mais qu'y a encore des choses à faire).
Donc je vous la met à dispo pour que vous regardiez et puissiez faire vos premiers pas dans le dev réseau pour la DS.
Alors, grosso modo le principe est très simple et très classique :
un thread qui attend les connexions de sockets et pour chaque connexion un thread qui écoute les paquets. Et à chaque reception de paquet, un thread qui traite le paquet. En fonction du paquet, on regarde s'il est à broadcaster, et si c'est le cas, on le broadcaste aux clients présents...
Donc, ca c'est le principe général.
J'ai écrit le serveur en C++/CLI, donc j'utilise la capacité du framework dotnet à gérer les sockets et les threads simplement.
J'ai essayé de rendre le serveur assez générique, et il sera paramétrable à distance dans l'avenir.
Après, pour le traitement des messages, c'est dans la classe traitement buffer.
Soit on la modifie pour l'adapter à son besoin, soit il pourrait etre interessant de faire une classe abstraite à dériver. Vous pouvez me donner vos suggestions avec plaisir.
Les messages echangés ont pour but d'etre en xml, c'est facile avec le framework .net ; pour la DS, pour l'instant je fais un parsing à la bourrin, mais j'essaierai d'intégrer tinyxml par exemple.
Ensuite, je compte rajouter un encodage en base64 pour les échanges, et à la rigueur, pourquoi pas une compression, mais bon, faut pas que ca devienne ingérable sur la DS.
Si vous avez des remarques, des questions ; si vous voulez plus d'explications, n'hésitez pas à me demander.
Comme je le disais, j'ai fait un ptit client .nds qui tourne mais qui est moche, je vais l'améliorer et vous le proposer prochainement.
Ce qui faut savoir, c'est qu'il utilise les fonctions de palib pour initialiser le wifi, et les sockets ensuite (non bloquant pour la réception, car je pense pas qu'il y ait de thread sur la DS). En tous cas, avec masterdjé, on parle par DS interposées ... YEAH !!
Sources du serveur
Bonne prog,
Nico
ps : j'arrive pas à uploader, mollusk ???

pps : il est pas dit que le serveur est exempt de tout bug, si vous en constatez, merci de me le signaler
C++C++ DEVDEV DSDS WIFIWIFI

05/04/2007 à 23:00:10 Dernière modif. : 05/04/2007 à 23:06:57