# SelectionKey serverkey, wozu?!



## Friedhelm (14. Jun 2011)

Ich habe da mal ne Frage... wozu benutzt man eigentlich das SelectionKey?

Siehe Code:


```
SelectionKey serverkey = serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);

while (isRunning) {
				
			
				Log.i("","waiting for event");
				selector.select();
				Log.i("","got an event");
				Set<SelectionKey> keys = selector.selectedKeys();

				for (Iterator<SelectionKey> i = keys.iterator(); i.hasNext();) {
					SelectionKey key = i.next();
					i.remove();

					if (key == serverkey) {
						
						if (key.isAcceptable()) {
							
							SocketChannel client = serverSocketChannel.accept();
							
							Log.i("","NEW CONNECTION from " + client.socket().getRemoteSocketAddress());
```

Ich kenne das nur so:


```
// Server auf einem Port starten		
		try 
		{ 
			acceptSocket=new ServerSocket(port);
			System.out.println("Server :"+acceptSocket.getInetAddress()+"  gestartet auf Port: "+acceptSocket.getLocalPort());

		}
		catch (Exception e)
		{ 
			System.out.println("Connection Error:"+e.toString()); 
		}
```


Ich habe mal ein wenig gegoogled... aber eine Erklärung nicht gefunden. Wo ist der Unterschied (Vor- und Nachteile) von dem Code oben und unten?


----------



## Friedhelm (15. Jun 2011)

Nach langer Suche... habe ich durch ein Tutorial das Prinzip nun verstanden.


----------



## Marcinek (15. Jun 2011)

Bitte weder das Tutorial noch die Lösung hier posten!


----------



## tuxedo (16. Jun 2011)

Marcinek hat gesagt.:


> Bitte weder das Tutorial noch die Lösung hier posten!



Öhm... Hä? Wieso sollte er das Tutorial oder die Lösung hier nicht posten dürfen?

Kann es sein dass du den Satz komplett verdreht und invertiert hast?


----------



## fc90 (16. Jun 2011)

war doch sicher ironisch gemeint, oder?


----------



## Marcinek (16. Jun 2011)

Ja sicher ist das ironisch gemeint.

Der TO hat hier eine Frage gestellt, die keiner Beantworten konnte / wollte.

Der TO hat aber eine Antwort erwartet. Hat sie gefunden. Wieso dann nicht mit allen anderen sharen?


----------



## Friedhelm (16. Jun 2011)

Ich helfe gerne und im Überfluss, doch hätte ich mir zuvor gewünscht, dass sich wenigstens einer meldet, "das wüsste ich auch gerne", "keine Ahnung", o.ä.

Aber natürlich habe ich keine Lust zu helfen, wenn alle das Posting ohne Gegenpost ignorieren. Und so schwer scheint die Antwort ja nicht zu sein, also ist die Antwort auch unwichtig.


----------



## Marcinek (16. Jun 2011)

Da scheint



> Meine Posts haben keinen professionellen Anspruch!



programm zu sein


----------



## madboy (16. Jun 2011)

Friedhelm hat gesagt.:


> Ich helfe gerne und im Überfluss, doch hätte ich mir zuvor gewünscht, dass sich wenigstens einer meldet, "das wüsste ich auch gerne", "keine Ahnung", o.ä.


Warum sollte jemand schreiben dass er keine Ahnung davon hat? Du hättest zwar geschätzte 1000 Antworten aber würde dich das weiter bringen?


----------



## Friedhelm (16. Jun 2011)

Marcinek hat gesagt.:


> Da scheint programm zu sein



Ganz toller Post. Was bringt Dir das jetzt? Hauptsache andere lächerlich machen...


----------



## Andi_CH (17. Jun 2011)

Was ich beobachte ist, dass oft Fragen gestellt werden und die definitve Lösung dann nicht im Thread erscheint - es gibt tatsächlich Leute die das Forum durchsuchen und sogar fündig werden (das war jetzt leicht ironisch ;-) ) aber eben nur das Problem und nicht die Lösung dazu finden.

Es wäre also nett, wenn du hier einen Verweis auf das Tutorial und deine Lösung posten würdest.


----------

