CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Application Client-Serveur qui foire

Quintoff
Quintoff
Niveau 10
11 mars 2005 à 22:00:02

Salut,

Je lance un petit SOS car j´ai démaré la partie reseaux de mon mmorpg ( je sais bien que ca fait raller tout le monde le mmorpg mais raller pas j´ai préciser la que c´était pour le plaisir : https://www.jeuxvideo.com/forums/1-31-8350895-1-0-1-0-0.htm ) et ca plante.

Normalement quand on est sur la map on voit les autres persos et leurs positions se raffraichissent. Malheureusement c´est loin de fonctionner comme ca : les autres perso s´affichent une première fois de façon décallée puis plus de modifications.

Peut être est - ce dans mon résonnement que ca foire ? ( http://www.macmultimedia.be/clientseveur.png ) Mais je ne pense pas! Je me demande si ce n´est pas parce que je doit " nettoyer" les flux d´entrés/sorties à chaque fois mais j´ai juste vaguement entendu parler d´un certain flush() qui je crois a ce genre de fonction.

:merci: d´avance

Quintoff
Quintoff
Niveau 10
11 mars 2005 à 22:03:21

oups voila le résonnement http://www.macmultimedia.be/clientserveur.png

Ruffi
Ruffi
Niveau 9
11 mars 2005 à 22:16:22

Moi aussi je bosse sur du java en reseau. J´en suis pas encore a la prog, mais au stade d´analyse. Je sais pas si tu fait du opensource, mais ça m´interesserai de voir ton code :)

En general, pour les info importantes ( style arivé de la persone sur le serveur, achat d´une arme...), on utilise le protocole tcp/ip, car on est sur que l´info va etre arivé. le tcp, c´est un truc du genre :
allo tu es la ?
oui je suis la
je peu t´envoyer un truc ?
D´accord
Tien je t´envoi le premier paquet
tien je t´envoi le 2eme paquet
Combien de paquet a tu recu ?
j´en ai recu 2
Bon, ben c´est bon au revoir
Au revoir

Mais pour les info ne necessitant pas cette precision, on utilise le protocole udp.
Lui, c´est un truc comme ca :
Tien, je t´envoi un paquet

Bon, j´exagere, mais c´est le principe.

Car on si on pert une information de deplacement d´une persone, c´est pas bien grave si on en a de fason tres frequente.

Quintoff
Quintoff
Niveau 10
11 mars 2005 à 22:22:44

Ruffi => Merci pour ces infos mais j´avait déja lut un suet sur un forum qui parlait de ca. Je opte pour le tcp/ip pour tous les transfère, c´est un peu plus lent mais je me compliquerai moin la vie.

Pour le open source pourquoi pas? A moins non parce que si Ubisoft et Konami venait à me voler mon code :-) . Je vais mettre mes source sur le net.

Sinon jje suis toujours tout ouies pour vos infos :)

Ruffi
Ruffi
Niveau 9
11 mars 2005 à 22:37:22

D´apres ce que tu dit, il semblerai que ta boucle de reception de message ai un probleme.

Mais d´apres ton shema, je ne sait pas trop comment tu gere tes clients. Je ne sais pas comment tu fait, mais je te dit comment je vois les choses ( mais comme je l´ai dit precedement, c´est encore en cours d´analyse avec mon papier, mon crayon et quelques mini test en code) : il faut une classe, qui herite de thread ou implement runnable, et qui te servira a gerer chaque client.
Ainsi, a chaque client qui se conecte, tu lui créé une instance de cette classe et et tu le créé un thread pour ecouter son socket.

Quintoff
Quintoff
Niveau 10
11 mars 2005 à 22:42:50

Merci mais tout ca c´est dja fais! Je suis en train de mettre le code sur le net pour te montrer.

Enfet le client se connecte, le serveur gere plusieurs clients sans probs mais seulement il affiche tres mal les perso dans le sens que il les affiche une fois puis il sont fixes et pas a la bonne place. Je ne demande meme pas d´animation juste afficher le perso quand il est sur une case ( va voir mon game disign pour savoir ce que j´appelle des cases http://www.macmultimedia.be/mmorpg/ )

Quintoff
Quintoff
Niveau 10
11 mars 2005 à 22:50:14

Voila les sources : http://www.macmultimedia.be/mmorpg/sources.htm

Ruffi
Ruffi
Niveau 9
11 mars 2005 à 23:47:40

J´ai essayé de comprendre le code ( pas facile dans une page web, sans pouvoir executer le code)

Un truc me semble bizard, c´est ta recuperation des info :

while(true) {
a = i.readInt();
b = i.readInt();
Positions update = new Positions(a, b, index);
}

puis l´envoi :
try{
o.writeObject(Positions.positionsA);
o.writeObject(Positions.positionsA);
}

il faudrai pas envoyer l´update ?
rajouter un truc du genre :
Postions.positionA = update;

Bon, j´avoue avoir eu la fleme de creer un projet eclipse pour tester le code...

Si tu a besoin d´aide, j´ai mit mon adresse mail : clic sur mon pseudo pour la recuperer. ( pas sur que je sache te repondre, mais j´essaierai)

Quintoff
Quintoff
Niveau 10
12 mars 2005 à 00:14:02

Enfet ca envoi tout l´ArrayList des a et Tout l´Array liste des b de la classe Positions

Ruffi
Ruffi
Niveau 9
12 mars 2005 à 00:23:38

Autant pour moi, j´avais pas vu que sa le metait dans la liste lors du constructeur... bon, je retourne voir ca alors :)

Ruffi
Ruffi
Niveau 9
12 mars 2005 à 00:35:27

Sinon, sa serai pas un mauvais copier-coller la :
o.writeObject(Positions.positionsA);
o.writeObject(Positions.positionsA);

T´envoi 2 fois A, et non pas A puis B

( Sinon, c´est bizard d´utiliser le constructeur d´une classe pour manipuler un tableau static de la classe. Je m´atendais pas a ca, je me suis fait surprendre... :) )

mon adresse me sert aussi pour msn si tu veux, sa sera peut etre plus pratique pour t´aider

Quintoff
Quintoff
Niveau 10
12 mars 2005 à 11:28:33

A oui tu as raison! C´est pour ca que le perso est décaller :) . C´est une bête faute. Je vais continuer dà essayer de déboguer.

Je t´ai ajouter à mes contacts sur msn.

Quintoff
Quintoff
Niveau 10
12 mars 2005 à 12:53:46

J´arrive pas à trouver a quoi sert fluch(). Quelqu´un pourrais m´aider?

Quintoff
Quintoff
Niveau 10
12 mars 2005 à 12:54:16

oups je veux dire flush()

fil_razorback
fil_razorback
Niveau 10
12 mars 2005 à 12:59:37

pour tirer la chasse non?

Quintoff
Quintoff
Niveau 10
12 mars 2005 à 13:41:20

:-) lol

N´empêche je me demande si ce n´est pas pour vider les flux d´ i/o donc sa a peut etre un rapport :)

Ruffi
Ruffi
Niveau 9
12 mars 2005 à 17:12:19

pour flush, j´ai trouvé cette explication sur le net :
" Précisons que la méthode flush() de la classe PrintWriter a pour effet d´envoyer immédiatement le texte voulu sur la socket."
http://www.larcher.com/erric/guides/javactivex/VIII.htm

( sinon, je vien de me conecté a msn et il ne m´a pas proposé de te rajouter)

Quintoff
Quintoff
Niveau 10
12 mars 2005 à 18:53:21

Merci pour flush(). C´est bizar je t´ai rajouter sur msn...

Sinon je vais essayer mais je crois avoir trouver une solution pour que l´utilisation du processeur ne soit pas de 100%. Enfait il y a une boucle qui a échappé a ma vigilence et je vais faire une pose pour voir le résultat.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment