# connect von Socket schlägt fehl



## MSJones (11. Feb 2010)

Hallo.

Hab mir hier ein Applet gebastelt, mit dem ich große Dateien mit dem HTTP-Protokoll auf einen Server laden kann.
Also a la <form><input type=file name=file></form>.

Prinzip iss ganz einfach: Ich nehme die große Datei, zestückele sie und schicke viele kleine Dateien nacheinander. Auf dem Server setze ich die Teile dann wieder zusammen.

Bei mir funktioniert das wunderbar, kine Probleme, aber bei einem Kunden z.B. bekomm ich die Fehlermeldung:

```
org.apache.http.conn.HttpHostConnectException: Connection to http://www.MyWeb.de refused
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:127)
        at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
        at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
        at JUA.sendPOST_File(JUA.java:465)
        at JUA.uploadFile(JUA.java:351)
        at JUA$2.run(JUA.java:401)
Caused by: java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(Unknown Source)
        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
```

Hierbei hab ich den httpClient von Apache verwendet.

Beim Versuch, direkt mit Sockets zu arbeiten, kommt folgene Fehlermeldung:

```
java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(Unknown Source)
        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at JUA.uploadFile(JUA.java:312)
        at JUA$2.run(JUA.java:521)
```

Also wie es scheint, kann er den Socket nicht öffnen.
Wie gesagt, bei mir funktioniert das wunderbar.

Nun ist meine Frage, warum darf der das nicht?

Unter welchem Benutzer wird das Applet ausgeführt?
Wenn es der Systembenutzer ist, könnte es sein, daß der kein Zugriffsrecht aufs Netzwerk hat.
Denn als normal eingeloggter Benutzer kann ich die Seite im Browser problemlos aufrufen.

Hat vielleicht noch jemand eine Idee, woran es liegen könnte, bzw. wie man das Problem beheben kann?

Gruß,
MSJones

PS: Leider muß der Upload zwangsweiseüber HTTP-Upload funktionieren. Iss Voraussetzung. Also kein FTP oder so.


----------



## ARadauer (11. Feb 2010)

mhn Connection timed out... Firewall vielleicht? Kann es sein, dass beim Browser des Benutzers ein Proxy eingestellt ist?
Das würd in dem Fall vielleicht helfen:

```
...
 HttpClient client = new HttpClient();
  client.getHostConfiguration().setProxy(url, port);
..
```


----------



## MSJones (11. Feb 2010)

Achso, ja, Proxy. Hatte ich vergessen zu erwähnen.

Die Idee mit dem Proxy ist mir auch schon gekommen.
Aber laut aussage von dem Kunden ist kein Proxy eingestellt.
Zumindest nicht in den Internetoptionen.

Also daran scheints nicht zu liegen.

Firewall sollte eigentlich auch ausscheiden, denn ich mach ja im Prinzip nix anderes als ne normale HTTP POST Anfrage. Mit dem Browser funktioniert das ja auch. Also sollte der Port eigentlich offen sein.


----------



## FArt (12. Feb 2010)

Aus eigener Erfahrung: Router oder Firewall oder Switch... selten defekt, meistens falsch konfiguriert.

Andere haben damit auch schon Erfahrungen gemacht:
java.net.ConnectException: Connection timed out: connect - Google-Suche


----------



## Empire Phoenix (13. Feb 2010)

Unter welchem Benutzer wird das Applet ausgeführt?

signed? Vordert es die benötigten rechte an?
Soweit ich weiß dürfen applets nur zum eigenen server connecten mit einschränkungen. Funktioniert es als Webstart?


----------



## Gast2 (13. Feb 2010)

MSJones hat gesagt.:


> Aber laut aussage von dem Kunden ist kein Proxy eingestellt.


vertrau keiner Kundenaussage ... überprüfe das einfach mit Telnet


----------



## FArt (15. Feb 2010)

Empire Phoenix hat gesagt.:


> Unter welchem Benutzer wird das Applet ausgeführt?
> 
> signed? Vordert es die benötigten rechte an?
> Soweit ich weiß dürfen applets nur zum eigenen server connecten mit einschränkungen. Funktioniert es als Webstart?



Ein Applet darf sich auf den Server verbinden, von dem es geladen wurde. Sonst gäbe es auch eine SecurityException, aber nicht das hier beschriebene Verhalten...


----------

