Hi,
ich bin gerade dabei einen nonblocking-Server zu implementieren und setze gerade das Versenden von Nachrichten um.
Die Daten die ich versenden möchte stelle ich in einem ByteBuffer bereit und übergebe diesen dann an den SocketChannel mittels der write-Methode.
Da der SocketChannel nonblocking ist kann es laut Doku sein, daß nicht der gesamte Buffer versendet (bzw. in den Socketbuffer kopiert) wird bevor der Methodenaufruf abgeschlossen wird. Dies ist im Speziellen auch der Fall, wenn der Channel bereit für's schreiben ist.
Meine Fragen hierzu:
1. Gehe ich richtig in der Annahme, daß die restlichen Daten auch noch versendet werden sobald der Channel dafür bereit ist
2. Ist weiterhin richtig, daß auf den gleichen Puffer zugegriffen wird
Ich hoffe der 1. Punkt stimmt Falls der 2. Punkt auch stimmen sollte bedeutet das, daß ich für jeden Versand einen neuen Puffer reservieren muß, da ich ja nicht sicher sein kann, ob der alte Inhalt noch benötigt wird.
Gibt es irgendwo eine Art Referenz-Implementierung für einen nonblocking Server. Ich habe bisher nur relativ primitive Beispiele finden können.
viele Grüße,
Käse
ich bin gerade dabei einen nonblocking-Server zu implementieren und setze gerade das Versenden von Nachrichten um.
Die Daten die ich versenden möchte stelle ich in einem ByteBuffer bereit und übergebe diesen dann an den SocketChannel mittels der write-Methode.
Da der SocketChannel nonblocking ist kann es laut Doku sein, daß nicht der gesamte Buffer versendet (bzw. in den Socketbuffer kopiert) wird bevor der Methodenaufruf abgeschlossen wird. Dies ist im Speziellen auch der Fall, wenn der Channel bereit für's schreiben ist.
Meine Fragen hierzu:
1. Gehe ich richtig in der Annahme, daß die restlichen Daten auch noch versendet werden sobald der Channel dafür bereit ist
2. Ist weiterhin richtig, daß auf den gleichen Puffer zugegriffen wird
Ich hoffe der 1. Punkt stimmt Falls der 2. Punkt auch stimmen sollte bedeutet das, daß ich für jeden Versand einen neuen Puffer reservieren muß, da ich ja nicht sicher sein kann, ob der alte Inhalt noch benötigt wird.
Gibt es irgendwo eine Art Referenz-Implementierung für einen nonblocking Server. Ich habe bisher nur relativ primitive Beispiele finden können.
viele Grüße,
Käse