# Problem: "Software caused connection abort: socket write error"



## cavecanem (7. April 2005)

Hallo zusammen

ich habe n ziemlich ärgerliches problem ... 

ich schreibe zur zeit ein Java Applet, das mittels InputStream, DataOutputStream und Socket eine Verbindung aufbaut, und vorher in einer liste selektierte Daten hochlädt.

Das Applet läuft soweit sehr gut, kompiliert auch fehlerlos, aber nachdem das Applet die Verbindung aufgebaut hat, renne ich bei folgendem codestück in die catch ...


```
int j = 0;
	while (j < loop) {
		try {		
			fileInputStream.read(buff, 0, uplPacketSize);
			out.write(buff, 0, uplPacketSize);
			out.flush();
		     } catch (IOException ex) {
			showMsg("Fehler: Übertragungsfehler");
			throw ex;
		    }
	j++;
```

und ich erhalte folgenden Fehler:


java.net.SocketException: Software caused connection abort: socket write error
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(Unknown Source)
	at java.net.SocketOutputStream.write(Unknown Source)
	at java.io.DataOutputStream.write(Unknown Source)
	at uploadApplet.UploadApplet.uploadFiles(UploadApplet.java:447)
	at uploadApplet.UploadApplet.bUpload_action(UploadApplet.java:249)
	at uploadApplet.UploadApplet.access$3(UploadApplet.java:243)
	at uploadApplet.UploadApplet$4.actionPerformed(UploadApplet.java:115)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
............


hat irgendeiner von euch einen socket error behandelt ? und wenn ja, wie?


----------



## schnuffie (7. April 2005)

Scheint ein Bereichsfehler zu sein.

Versuch's mal damit:


```
int i;
while ((i = in.read()) >= 0) {
  out.write(i);
}
```


----------



## thooomy (27. April 2005)

Ich hab zwar keine Ahnung von Java, aber den Socketfehler kenn ich, also geb ich mal meinen Senf dazu 

"Software caused connection abort:" ist ein Socket error - i.a. kommt er dann wenn die Gegenseite den Socket dicht gemacht hat weil du z.B. ungültige Daten geschickt hast. 
zB. bei HTTP Verbindung: wenn deine gesendete HTTP Datei grösser ist als als im header angegeben macht der Browser den Socket zu - wennn du dann noch senden willst kommt dieser Fehler.
Dieser Fehler kann aber sehr viele Ursachen haben. Prüfe am besten ob die Gegenseite überhaupt noch Daten erwartet und ob der Socket nicht schon geschlossen wurde. (der Fehler kann also auch schon viel weiter vorne liegen oder im Übertragungsprotokoll)


----------

