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

Erreur Connection reset en Java : help

UItraxion
UItraxion
Niveau 10
14 mai 2013 à 09:51:58

Je suis désolé d'avance je ne peux pas montrer mon code, mais l'idée c'est que je dois envoyer a partir de mon client un fichier sur un serveur.

Le schéma général se déroule ainsi :

-Client > Connexion au serveur
-Le serveur accepte la connection
-J'envoie un mot de passe au serveur pour qu'il m'authentifie
-Ce dernier vérifie si le mot de passe est vrai et envoie une réponse au client (un string, pour préciser)
-Une fois autorisé, le client envoie son fichier

Mon gros souci c'est que sans ouvrir de flux supplémentaire pour recevoir la réponse coté client, la vérification du mot de passe coté serveur marche parfaitement. Sauf que dès que je veux que le serveur réplique et autorise le client à envoyer son fichier, ça foire.

Ce qui se passe, c'est que coté client, si je veux stocker la réponse du serveur dans un string, genre :

String answer = in.readLine();

Cette ligne, précisément, va provoquer l'erreur suivante :

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)

(je ne pense pas que la stackTrace vous soit très utile)

D'après mes recherches, cette exception est levée lorsque la connexion coté client se ferme brusquement. Comment cela est possible alors que pour le moment aucun flux ni aucun socket ne soit flush ou closed ?

Merci d'avance...

_skip
_skip
Niveau 10
14 mai 2013 à 12:16:36

3 Choses...

1) Il me semble que cette erreur peut aussi se produire si le côté serveur ferme de socket.
2) Es-tu sûr de bien flusher après chaque message pour éviter que tes messages restent dans le buffer indéfiniment?
3) Es-tu sûr que c'est une bonne idée de réinventer FTP?

UItraxion
UItraxion
Niveau 10
14 mai 2013 à 12:19:37

1) Oui c'est exact, mais après de nombreux test c'est clairement le client qui fait foirer.

2) Je vais tester ça de suite

3) C'est un projet pour une école

UItraxion
UItraxion
Niveau 10
14 mai 2013 à 15:04:01

Bon meme avec les flush y a rien à faire. De toute façon il me semble avoir dèja testé hier soir et ca n'améliore pas la situation malheuresement.

_skip
_skip
Niveau 10
14 mai 2013 à 16:50:34

Le truc maintenant c'est que si tu peux pas montrer un peu de code, on est bloqué.

UItraxion
UItraxion
Niveau 10
15 mai 2013 à 02:56:13

J'ai reussi. C'etait une erreur de protocole, il faut faire très attention aux types de flux que l'on emploie a travers une communication via sockets.

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