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] Serveur

march99
march99
Niveau 10
16 novembre 2008 à 14:23:13

Bonjour ,
Voila je n'ai pas trouvé de cours assez compplet sur la programmation d'un serveur et d'un client en java . Alors si vous pouviez me donner une adresse d'un site sa serait sympa :) . Sinon avec tout les bouts de cours que j'ai vu j'ia essayer de faire un serveur et un client très simple mais cela ne marche pas , le client ne recois pas les données que le serveur lui envoi .Si quelqu'un pouvait me donner la solution je lui en serait redevable .

Classe client : http://rafb.net/p/SvxaA791.html
Classe Serveur : http://rafb.net/p/9Ix0RA14.html

Ne faites pas attention si il y a des boucles sans fin , si je gere pas tout les cas d'erreurs ets .. pour l'instant je cherche juste a ce que le client arrive bien à recevoir le message du serveur et qu'il l'affiche .

Merci de votre aide :)

godrik
godrik
Niveau 30
16 novembre 2008 à 18:00:21

usuellement, seul root a le droit d'ouvrir des port TCP ou UDP inférieur a 1024.

march99
march99
Niveau 10
16 novembre 2008 à 18:35:16

Si je change les ports cela ne change rien . D'ailleurs le client arrive bien à se connecter au serveur . Le problème c'est qu'il ne recoit aucune donnée du serveur :-(

godrik
godrik
Niveau 30
16 novembre 2008 à 21:54:55

ah, ca doit etre un probleme de buffering.
Je me rappele que j'encapsulais tout dans des bufferedwriter et des bufferedreader pour contourner cela.

march99
march99
Niveau 10
16 novembre 2008 à 22:23:38

Oui je viens de trouver le problème . Il est perver ^^
j'envoie sa avec le serveur :out.print(envoi);
et je lit comme sa avec le client : in.readLINE()

Le client lisant une ligne , tout ce que le serveur envoyais il le gardais le considerant comme une ligne .
Il faut donc mettre out.print(envoi+"\n)
Voila en ésperant avoir été clair :)

march99
march99
Niveau 10
17 novembre 2008 à 18:17:34

Par contre j'ai une autre question : comment faire pour que le client puisse lire toute les donnée que le serveur envoi ? Car si je lui demande de lire (in.readLine()) il ne lira qu'une ligne et pas toute.

GregPujol
GregPujol
Niveau 5
17 novembre 2008 à 21:29:59

Faut lire en boucle jusqu'à recevoir un caractère (ou une chaine de caractères) que tu auras choisi comme étant la fin du message (par exemple tu envois "EOF")

march99
march99
Niveau 10
17 novembre 2008 à 22:47:53

Hum .... Ok j'y avais pas penssé ^^ Merci

march99
march99
Niveau 10
24 novembre 2008 à 01:00:45

Désolé du UP mais j'ai un petit problème la :-( En faite j'aimerai envoyer des objets du serveur au client :

    • * serveur ****

ObjectOutputStream oos;
oos = new ObjectOutputStream(client.getOutputStream());
oos.writeObject(r);
oos.flush();

////erreur

Exception in thread "main" java.lang.NullPointerException
at Serveur.start(Serveur.java:22)
at Serveur.<init>(Serveur.java:16)
at Serveur.main(Serveur.java:45)

    • *Client

try {
Socket client = new Socket("localhost",1500);
ObjectInputStream ois;
ois = new ObjectInputStream(client.getInputStream());
try {
while(true){
Region r =((Region)ois.readObject());
Joueur j = new Joueur(new Region_depart());
}
} catch (ClassNotFoundException e) {
}
}
///Erreur

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at
java.io.ObjectInputStream$PeekInputStream.read(Unk
nown Source)
at
java.io.ObjectInputStream$PeekInputStream.readFull
y(Unknown Source)
at
java.io.ObjectInputStream$BlockDataInputStream.rea
dShort(Unknown Source)
at
java.io.ObjectInputStream.readStreamHeader(Unknown
Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at Client.main(Client.java:14)

Voila si quelqu'un pouvait m'aidez je lui en serait reconnaissant :ange:

Thicot
Thicot
Niveau 10
24 novembre 2008 à 07:15:57

Y'a que ces lignes là dans ta classe Serveur ? Si oui, il manque quelques trucs quand même, comme le new ServerSocket par exemple...

Tu veux pas nous donner tout le code ?

godrik
godrik
Niveau 30
24 novembre 2008 à 12:20:09

je pense qu'il faut que les objets soit serializable pour que l'on puisse faire ces opérations.

march99
march99
Niveau 10
24 novembre 2008 à 19:36:02

Godrik j'ai déjà serializer les objets .
Thicot j'ai pas voulu mettre les sources entiere pasque c'est un peu le bordel = je voulais juste essayer vite fais pour voir si sa marche de transmettre un objet . Enfin bon voila les sources :
Serveur = http://rafb.net/p/CJIXo422.html

Client = http://rafb.net/p/xezsSP15.html

Gestion du client par le serveur en Thread = http://rafb.net/p/xP3WhP61.html

Voila voila :)

angelfires
angelfires
Niveau 1
20 janvier 2009 à 13:18:34

J'ai realise une application serveur internet développée en java paramétrable a distance en RPC. Il accepte de multiple connections simultanées pour retourner un ficher (ou une partie du fichier) du serveur. les méthodes accepter sont OPTION, GET, POST.
Tu peux trouver le code source a cette adresse :
http://www.angelfires-fr.com/programmation/index.php?nom=ittpServer

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