java.net.Exception socketexception: socket TCP fermée Client-Serveur de Communication

Je suis entrain de créer un java application client/serveur sur TCP où nous avons deux sockets:

  • L'un est pour l'échange de messages.
  • Deux est pour le transfert de fichiers.

J'ai créé dans le Serveur deux ServerSockets afin de créer Un Socket et Deux

en acceptant la ServerSockets.

Au premier abord, le client envoie des octets à la première Prise

de sorte qu'il peut dire au Serveur de fichiers dont il a besoin.

Puis le Serveur par le biais de la deuxième prise envoie le fichier au client.

Après que le client reçoit le fichier tente de renvoyer vers le serveur d'un Transfert de Message Fait.

Là, je reçois l'Exception de la socket fermée.

Cependant je n'ai jamais fermer le socket jusqu'à maintenant.

J'ai seulement fermer le tampon qui sente le fichier.

Même si j'essaie d'ouvrir de nouveau le socketInputStream après que j'ai envoyé le fichier, l'erreur est toujours la même.

Également si je ne ferme pas la mémoire tampon qui est envoyé le fichier, le client n'obtient pas le fichier.

Exception De Serveur

Erreur dans le Message de Retour - java.net.Exception socketexception: socket fermée

Client Exception

Réponse du serveur java.net.Exception socketexception: Logiciel a provoqué l'abandon de la connexion: prise d'erreur d'écriture

Ce que je fais mal?

Vous devriez vraiment ajouter un peu de code et la stacktrace...
Assurez-vous que vous êtes à la fermeture de la connexion à l'un de la fin , si ce n'est pas le cas que je suis sûr que vous la fermeture de l'Entrée ou de la Sortie des Flux , de ne pas les fermer jusqu'à ce que vous êtes sûr que vous la communication des données est terminée et vous méthode flush() à chaque fois que vous souhaitez envoyer des données à la prise
double possible de Officiel des raisons pour "Logiciel a provoqué l'abandon de la connexion: prise d'erreur d'écriture"

OriginalL'auteur lemanou | 2013-04-02