patoche43
Messages postés4Date d'inscriptionvendredi 6 octobre 2006StatutMembreDernière intervention12 décembre 2006
-
1 nov. 2006 à 19:31
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 2010
-
4 nov. 2006 à 11:21
Bonjour à tous,
je dois faire un projet en C++ (de préférence Visual et sous Windows)
avec une grosse partie réseau : Il s'agit d'un jeu de stratégie (au
tour par tour) mettant en réseau une dizaine de joueurs.
Je vais donc utiliser une connection TCP, mais comme je n'ai aucune
connaissance en programmation réseau je ne sais pas sur quel librairie
me lancer ! Aprés quelques recherches sur internet j'ai fait une petite
liste des librairies paraissant intéressant, et j'aimerais quelques
conseils pour savoir les avantages/inconvnients concrets de chacune
d'elles :
SDL_Net
netwib
où utiliser directement les Sockets
Si vous connaissez aussi une autre librairie pour ce type de programmation, je suis preneur.
patoche43
Messages postés4Date d'inscriptionvendredi 6 octobre 2006StatutMembreDernière intervention12 décembre 2006 3 nov. 2006 à 15:50
Tout d'abord : merci beaucoup pour vos réponses
En effet, je ne peut pas inclure de Java parce que d'autres personnes
bosses sur ce projet avec moi et nous avons convenu de le faire en C++
: donc même si cela simplifierai le réseau, je dois me contenter de
sockets ou d'une surcouche.
Pour la bibliothèque RakNet, j'ai fait quelques recherches et elle est
surtout adapté pour un réseau UDP ! Donc je ne peux pas non plus
l'utiliser.
Pour l'instant je pense que je vais m'orienter du coté de la SDL_net :
SDL étant une librairie assez connue, j'ai vu aussi qu'elle pouvait
gérer le mutli threading de manière assez simple, et proposer aussi une
librairie pour la compression de donnée.
Elle est basique mais pour un petit projet elle est tres bien meme si elle n'est pas totallemnt asynchrone d'apres les commentaires (moi a part a la connexion j'ai aucun probleme avec)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 1 nov. 2006 à 21:33
Vous pouvez aussi faire une phrase quand vous répondez à une question, parce que ws32_2.lib (au passage, ca marchera mieux avec ws2_32.lib), c'est pas sur que ca l'aide, et puis c'est la même réponse que winsock.h.
Donc pour expliquer, la librairie WinSock te permet d'utiliser le protocole TCP/IP pour communiquer sur le réseau (avec les fonctions connect, accept, bind, send, recv...). Je pense que c'est le truc de plus bas niveau que tu peux utiliser pour faire de la programmation réseau (SDL_Net en est sans doute une surcouche). La majorité des codes présents sur ce site sont écrits avec cette librairie.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 2 nov. 2006 à 00:05
Salut:
Es tu sûr qu'il dois faire son projet en C++?
Peut être qu'il change de point de vue à tout moment.
Moi, j'ai dit franchement ce que je connais.
Merci, pour la moquerie !!!
Java est le meilleur dans tout ce qui est réseau ...
_________________________________________________________________
A.B. : La chance sourit aux audacieux.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 2 nov. 2006 à 15:19
Salut:
Les certificats sont nécessaires dans le cas des applets seulement vu qu'ils sont sécurisées; La programmation avec Java réseau est simple -un constructeur fait le tout- n'oublie pas que tu as besoin du multi-threading qui est un peu délicat en C++, en Java c'est un jeu.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 2 nov. 2006 à 16:05
Java : il ne doit pas être le seul sur le projet, on ne va pas faire changer toute une team pour ça. Et filezilla est prog en C++ si je me souviens bien. Merci d'éviter les trolls "Java c'est mieux" ; ) ( Java : compile once, debug everywhere ( dsl j'ai pas pu m'en empêcher, mais de toute façon j'en fais du java ce n'est qu'une boutade )).
WinSocks : certes mais pas portable
Toute source dispo sur cppfrance : certes mais il s'agit plus de coups d'essai , peu stables.
Je te conseille RakNet, il paraît que c'est particulièrement bien pour tout ce qui est jeu en réseau.
Vecchio -> A moins que Java ne soit devenu une librairie pour C++, ca ne répond pas au problème mdr
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 2 nov. 2006 à 16:11
D'après ce que j'avais cru comprendre, WinSock est basé sur les sockets BSD, tout comme UNIX. Donc en fait la seule chose qui diffère selon qu'on est sous Windows ou Linux, c'est les includes. Après le code reste le même (mêmes structures et mêmes primitives). Je me trompe?
Concernant le multithreading, je ne suis pas certain mais je crois bien qu'il est géré automatiquement en C (la fonction accept va créer un nouveau thread pour chaque connexion)
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 2 nov. 2006 à 16:32
Moi j'avais vu comme librairie Zoidcom, je sais pas vraiment ce que ça vaut mais on m'avait dis que c'était pas mal (j'ai pas testé car il n'est pas compatible avec VC++ 6.0 ).
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 2 nov. 2006 à 16:35
Salut:
Il faut utiliser un fork pour créer un processus fils auquel on délégue quelques tâches.
D'ailleurs, c'est typique dans les programmes utilisant la socket sous UNIX.