Comment trouver la liste des parties lancés dans un jeu en reseau ?
tichau4
Messages postés27Date d'inscriptiondimanche 14 novembre 2004StatutMembreDernière intervention14 février 2006
-
24 août 2005 à 20:59
tichau4
Messages postés27Date d'inscriptiondimanche 14 novembre 2004StatutMembreDernière intervention14 février 2006
-
28 août 2005 à 22:17
Voila le probleme, je suis en train de faire un mini jeu reseau.
Quand on clique sur rejoindre une fenetre s'affiche avec la liste des
parties disponible sur le reseaux. ou en cherchan manuellement par
adresse ip.
La recherche manuelle marche tres bien. le probleme vien de la
recherche automatique, non seulement elle est exescivement longue
(environ 20 sec.) mais en plus à la fin le programme plant sur une
erreur : Asynchronous socket error 10061 !
Je pense ke toute la technique est mauvaise (je ping tte les adresses
une a une et cherche les parties sur les adresses ou le ping est
positif) auriez vous une autre solution ?
Tu peux décrire un peu plus ton projet stp ?? quel est l'intéret d'avoir l'IP ???? Pk faire une recherche manuelle et une autre automatique???? c'est l'adresse Ip du serveur ou du client ????
Le ping me semble une opération dangereuse pour ta recherche : les IP sont parfois dynamiques. Le mieux est de demander dans ton programme client de transmettre son IP et non de la chercher : comme cela pas d'erreur (IP dynamique, pas de proxy ect ect).
tichau4
Messages postés27Date d'inscriptiondimanche 14 novembre 2004StatutMembreDernière intervention14 février 2006 25 août 2005 à 10:53
quand un client ce connecte au serveur, celui ci envoi le nom de la partie.
En fait pour faire la liste des parties lancés je me connecte au
serveur un par un, pour trouvé les adresses des serveurs je ping toutes
les IP. Jai mi une recherche manuelle si l'automatique ne marche pa.
(le probleme cé qu'elle ne marche jamais et qu'elle fait planté le
programme)
neodelphi
Messages postés442Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention11 août 2008 28 août 2005 à 12:11
C'est pas bien de tester toutes la adresse ip. Ce qu'il te faut, c'est un serveur global. Losqu'une partie est crée, elle envoi son ip au serveur global. Lorsque tu veut rejoindre, tu te connecte au serveur global dont tu connai l'ip car c'est un serveur constant, tu demande la liste des parties et le serveur global te renvoi la liste des ip des parties en cours.
C'est ça qui est fait pour tout les jeux en lignes comme half-life par exemple.
neodelphi
Vous n’avez pas trouvé la réponse que vous recherchez ?
neodelphi
Messages postés442Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention11 août 2008 28 août 2005 à 20:56
Tu me pose une colle lol... DirectX le fait lui-meme pour le lan, il gère tout ce qui est liste des parties etc...
Je suppose (mais ça reste une suposition) qu'il faut envoyer un paquet volant dans le réseau, sans destinataire sur un certain port, et les jeux qui tournent doivent ecouter le reseau pour voir cet éventuel paquet. Il répondent alors en envoyant leur adresse IP. Je sais pas si l'envoi de ce paquet est possible avec une couche TCP/IP, je croit que ça se fait avec UDP, mais j'y connai pas grand chose.