Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: To Block or not to Block. Frei nach WS

  Alt 23. Sep 2006, 13:17
Hallo Frank,

Zitat von Mavarik:
Ja eben...bzw. nein

Blocking: Der Server startet für jede Verbindung einen eigenen Thread der in einer Endlosschleife wartet...
Nonblocking: Der Server kann sich mit sich selber beschäftigen, bis der entsprechende event diese Procedure aufruft.
wie immer entstehen ohne vorherige Begriffsbestimmungen die tollsten Missverständnisse. Ich beziehe mich auf Winsock 2 und du dich auf TSock. Ich kenne mehrere verschiedene socket i/o Techniken. Eine davon ist blocking und ist über jeden Definitionszweifel erhaben. Die anderen sind alle non-blocking. Wiederum davon wird der trivialste Modus als non-blocking bezeichnet (oft auch als pure non-blocking) und auf diesen bezog ich mich in meinem Beitrag. Die restlichen Modi bedürfen weiterer Erklärungen.

Ich habe mir die Unit TSock besorgt und mir den Code kurz angesehen. Ich komme zu dem Schluß, dass es sich um eine Implementierung von asynchronous sockets handelt. Dabei sendet der protocol stack eine message (WM_SOCK), wenn sich was tut.

Die bloße Warnung vor dem non-blocking mode in TSock ist vielleicht etwas ungeschickt, aber der Autor wollte wohl nicht zu sehr ins Detail gehen. Nach meinen Informationen bricht die server performance mit asynchronous sockets recht bald ein.

Während ich hier schreibe habe ich im Netz einen wunderschönen Artikel von Warren Young gefunden, der dir eine Klassifikation der unterschiedlichen i/o modes nahe bringt. Darüberhinaus geht er etwas tiefer auf die Wahl des richtigen Modus ein. Viel Spaß beim Studium.

Schönes Wochenende

marabu
  Mit Zitat antworten Zitat