# Socket.setReuseAddress   ???



## Thanni (15. Mrz 2004)

kann mir mal bitte jamand erklären wie ich das genau benutzen soll ?

ich will auf dem gleichen port bei meiner socket anwendung nochmal reconnecten aber mit diesem befehl klappt das nur manchmal dann sagt mir die vm das der port schon belegt ist 
ich glaube wir hatten das thema schon mal sind aber auf keine lösung gekommen bis ich diesen befehl gefunden habe , war ricxhtig happy aber irgendwie klappt der nicht so richtig


ich nutze ein applet wenn es läd connected es sich automatisch wenn es refresht wird disconnected es und connected wieder somit vergisst der glaube wieder das der port auf reuse gesetzt war , keine ahnung hoffe ihr könnt mir helfen


gruß thanni


----------



## Thanni (17. Mrz 2004)

Hallo 

bitte antwortet wenigstens, selbst wenn ihr keine pos antwort habt
sonst kommt man sich total igoriert vor


gruß thanni


----------



## Pulvertoastman (18. Mrz 2004)

Du solltest das Socket Objekt ohne Port Nummer erstellen. Etwa so.


```
Socket socket = new Socket();
socket.setReuseAddress(true);
socket.connect(new InetSocketAddress(hostname, port));
```

Aber Vorsicht: Das geht erst seit JDK1.4.


----------



## Guest (18. Mrz 2004)

Pulvertoastman hat gesagt.:
			
		

> Du solltest das Socket Objekt ohne Port Nummer erstellen. Etwa so.
> 
> 
> ```
> ...



Danke das du dich meiner erbarmt hast 

leider hilft mir das nicht wirklich weiter; mein client socket soll ja auf einem bestimmt port sein
beispiel server auf 55000 und client auf 55001 oder auch auf 55000

meine bisherige verbindung bekomme ich so


```
connection=new Socket();
InetAddress lAdd= connection.getLocalAddress();
connection=new Socket(Host,55000,lAdd,55001);
```
... geht auch aber halt nur einmal

mit deiner methode müsste ich vorher irgendwie den cport binden an meinen client da ich ja nur host und port angebe 

habs dann so probiert

```
connection.setReuseAddress(on);
    InetSocketAddress isa=new InetSocketAddress(lAdd,55001);
    connection.setReuseAddress(on);
    connection.bind(isa);
    connection.setReuseAddress(on);
    connection.connect(new InetSocketAddress("192.168.1.41",55000));
    connection.setReuseAddress(on);
```

achja on = true;

ich habe setreuseaddress mal sicherheitshalber überall hingepackt  damit er es auch kappiert geht aber trotzdem nicht normalerweise soll es ja einmal reichen bevor man den socket schließt ... ha 

also mein client ist in einem applet und wenn ich refresh mache wird der socket disconnected und alles geht von vorne los und er will sich wieder auf den gleichen port binden geht aber nicht ...
[/quote]


----------



## Pulvertoastman (18. Mrz 2004)

Der Versuch, das bind in den init-Bereich zu verlagern, könnte das Problem etwas entschärfen.

Wird der Socket wirklich disconnected? Was sagt der Server dazu?


----------



## Thanni (19. Mrz 2004)

Pulvertoastman hat gesagt.:
			
		

> Der Versuch, das bind in den init-Bereich zu verlagern, könnte das Problem etwas entschärfen.
> 
> Wird der Socket wirklich disconnected? Was sagt der Server dazu?



ich kann doch erst bind aufrufen wenn auch ein socket da ist ?
ich habe schon alles mögliche probiert immer das gleiche ergebnis wenn reuseaddress mal funktioniert dann nur ein oder 2 mal und dann nich mehr

beim server wird nichts mehr angezeigt es wird alles richtig getrennt 
und in meiner firewall sehe ich auch keine offene verbindung mehr bzw belegte ports

alles sehr seltsam

mfg Thanni


----------



## Thanni (22. Mrz 2004)

nagut vergess ich das ganze


----------

