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

[JAVA] Probleme de Socket

le-chocolat
le-chocolat
Niveau 9
10 avril 2012 à 02:44:36

Bonsoir !
Je développe une application Client/serveur et j'ai un petit problème coté serveur. :-(
Je m'explique a chaque message reçu par un client le serveur vérifie si il le connais déjà(IP et PORT) et si non il le mémorise.
je récupère l'ip et le port comme ceci :

InetAddress ip = recievePacket.getAddress();
int port = recievePacket.getPort();

Problème a chaque message d'un client le recievePacket.getPort() me renvoi un port différent.
et j'ai besoin de ce port pour repondre au client ensuite, donc je sais pas comment gérer :question:

Toutes remarques ou infos constructives sont les bienvenues :hap:
(je debut en client/serveur java)

041
041
Niveau 10
10 avril 2012 à 09:51:16

Je sais pas trop comment tu veux faire ton bazar mais...

Ton serveur doit créer un ServerSocket.
Faut une boucle où il accepte les sockets(Socket s=ss.accept()), et donc là tu obtiens pour chaque client un socket dont tu te sert pour répondre avec il me semble getOuputStream, tu crée un outputstream selon tes besoins, et t'écris dessus.

Là t'essaye de faire des trucs bizarre avec les ports ça va jamais marcher :noel:

le-chocolat
le-chocolat
Niveau 9
10 avril 2012 à 12:31:38

je me suis surement mal exprimé alors :
je fais un Chat Client et Serveur en deux programmes distinct
un serveur gère tous les clients, il renvoi les messages a tous les clients connecté. :)
je l'ai fait en UPD (Datagram socket)

Coté serveur j'identifie mes clients par :
ip et port par lequel il se sont connecté au serveur.

coté client je parle a mon serveur comme ca :

DatagramPacket out = new DatagramPacket(buf, buf.length, hostAddress, 7777);
try{s.send(out);}

on spécifie bien le port du serveur,
Mais le port utilisé par le client pour sortir de son réseau, c'est du port dynamique, donc a chaque message envoyé ça utilise un nouveau port quasiment
donc coté serveur je le vois comme un nouveau client .. :pf:
(je suis sur que personne n'a lu jusqu'ici)

Je auto-solutionne en identifiant mes clients par leurs adresse mac.

Voila j’espère avoir été plus clair.

tbop2
tbop2
Niveau 10
10 avril 2012 à 13:40:18

L'UDP de memoire ca ne fonctionne pas en mode connecte.

Dans ce cas la gerer une liste de clients connus ne parait pas necessaire (a la limite tu peux faire une blacklist).

Quand tu recois un message de quelqu'un tu le renvois a celui-ci, si tu as besoin d'avoir un systeme de connection dans ton architecture comme ton probleme le laisse penser alors il faut changer par du protocol TCP de bout en bout et non pas UDP. :ok:

le-chocolat
le-chocolat
Niveau 9
10 avril 2012 à 15:03:06

Ouais j'aurais du commencer par du TCP
enfin je m'en suis quand même sortit,
je posterai bien le code pour qu'on en fasse une analyse
(need progresser)
mais c'est un projet que je vais presenter a un exam donc bon..

tbop2
tbop2
Niveau 10
10 avril 2012 à 15:53:40

Ton code va se faire defoncer s'il necessitait clairement une architecture client/serveur en mode connecte...

le-chocolat
le-chocolat
Niveau 9
10 avril 2012 à 18:08:12

C'est du niveau bts, je pense pas qu'il soit exigeant a ce point la :hap:

tbop2
tbop2
Niveau 10
10 avril 2012 à 20:16:54

Peut-être mais c'est quand même pas une exigeance basse non plus, l'UDP ce n'est que pour du streaming.

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