Erreur Java - Logiciel a provoqué l'abandon de la connexion: recv échoué
Le message d'erreur est:
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at chat.run(chat.java:76)
at java.lang.Thread.run(Thread.java:722)
"au chat.exécuter(le chat.java:76)" est cette ligne:
System.out.println("[_in_"+(line=ins.readLine())+"_]");
ligne étant une chaîne et ins étant un BufferedReader
ins = new BufferedReader(new InputStreamReader(_sock.getInputStream()));
_sock être
Socket _sock = null;
_sock = serv_sock.accept();
Cela se fait sur mon Serveur, java et non pas sur mon client java...
Aussi, cela se fait quand je n'ai pas envoyer n'importe quoi pour un peu de temps
-----EDIT------
J'ai essayé de nouveau;
D'abord, il est allé à 40 minutes à ne rien faire, et il travaillait encore,
puis j'ai attendu 40 minutes, et cette fois il ne fonctionne pas.
Il semble être une sorte de hasard..
Je ne peux pas comprendre quelle en est la cause.
Les fichiers que j'ai sont
* [client.java], [chat.java], [vlc.java]
* [server.java], [chat.java], [vlc.java]
le vlc fichiers sont les mêmes dans les deux bien que le chat est différent
(depuis que je havn't fait Threads à la fois client et serveur)
Voici le code;
SERVER
server.java: pastebin.com/GH8ShcGp
chat.java : pastebin.com/iaL23kSb
vlc.java : pastebin.com/9kyrbh5q
CLIENT
client.java: pastebin.com/HDK450Jg
chat.java : pastebin.com/CfHrEUkE
vlc.java : pastebin.com/SfZgYy58
Je pense que c'est une fenêtre/réseau de chose.
Quelqu'un qui s'il vous plaît pouvez m'aider à résoudre ce problème??
... Et
ins
est un BufferedReader pour ce flux, exactement? Vous devriez poster beaucoup plus d'informationsAjout de plus d'info à ma question
double possible de Officiel des raisons pour "Logiciel a provoqué l'abandon de la connexion: prise d'erreur d'écriture"
OriginalL'auteur user1021085 | 2012-01-27
Vous devez vous connecter pour publier un commentaire.
Je ne pouvais pas obtenir les dates exactes de votre problème à reproduire sur mon propre ordinateur à l'aide de votre code et localhost-connexions, mais après avoir lu au sujet de "BufferedReader.readLine() lancer java.net.Exception socketexception: Logiciel a provoqué l'abandon de la connexion: recv a échoué" dans plusieurs pages, je crois que c'est lié à votre réseau. La connexion semble être interrompue en raison d'un timeout TCP ou des données corrompues dans la transmission.
Si cela arrive sur localhost-connexions (serveur et client en même ordinateur), il pourrait être dû à une mauvaise mémoire, sinon vous risquez d'avoir une fracture de la carte réseau, routeur ou un câble quelque part le long de la ligne. Si vous utilisez sans fil, ils peuvent être assez fiable.
J'ai édité la réponse
Vous avez modifié le code (il obtient le port # etc à partir d'un fichier de propriétés) et a ouvert en hausse de 2 clv et est allé dans Outils -> préférences -> Afficher les paramètres: tous -> Interface -> interfaces principales -> rc -> cochez la case "ne pas ouvrir le dos.." et le type de 127.0.0.1:PORT_YOU_SET_IN_vlc.java dans le "tcp entrée de commande"? (a choisi un autre port du serveur et du client et de modifier en conséquence dans les tcp-commande-entrée windows) - Si vous l'avez fait et cela a fonctionné pour mettre en pause et play - avez-vous une pause et laisser reposer pendant un certain temps? Essayez de 30 minutes et voir si elle vous donne l'erreur ensuite. Faire d'autres choses pendant que vous attendez les x minutes. Essayez de 1 à 3 fois.
Je ne suis pas familier avec VLC de réseautage, j'ai commenté le vlc liés à des appels dans le code. Notez également que je n'ai pas de Windows-ordinateurs à la maison, seulement Linux, de sorte qu'ils peuvent se comporter d'une manière complètement différente. Cependant, je crois toujours que l'exception est liée à la réseau de lien va vers le bas de façon inattendue (qui peut aussi être causée par le VLC de faire quelque chose de loufoque), mais plus que cela, je ne sais vraiment pas...
wiki.videolan.org/VLC_command-line_help les listes de plusieurs types de délai d'expiration des options pour VLC-la mise en réseau, ma meilleure supposition est que VLC va mettre fin à la connexion avec le protocole TCP délai d'attente après avoir mis en pause pendant une durée assez longue. Malheureusement, je ne pense pas que je peux vous aider plus loin avec cette.
OriginalL'auteur esaj
Cette erreur se produit exactement à cause de problème de réseau. Il s'agit lors de la connexion à votre base de données a échoué et et l'application est impossible de récupérer les données requises. Le problème peut être dans votre fil de connexion ou avec le modem. Essayez d'en changer. Sinon, vérifiez votre base de données access, sql developer, etc si sa fonctionne bien, il pourrait y avoir un problème de délai d'expiration de transaction.
OriginalL'auteur Sohail Anwar
Il y a deux possibilités:
OriginalL'auteur user4839411