Wie wäre es denn mit einem Event-gesteuerten Ansatz in der Art Socket.OnDataAvailable := MyHandleDataEvent
?
Das ginge ja in die selbe Richtung wie mein alter
HandleData
Ansatz. Da aber ja nicht jede Socket Komponente so ein Event besitzt (vor allem nicht mit der selben Parameter-Definition), sollte der Benutzer damals selbst auf ein
OnDataAvailable
Event reagieren und darin dann
HandleData
vom IO-Handler aufrufen. Bzw. im Fall von blocking Sockets hat der Benutzer entsprechend nach neuen Daten gepollt und bei Empfang dann
HandleData
aufgerufen.
Ist natürlich ohne Frage der Ansatz, der dem Benutzer die größte Freiheit lässt.
Was mich einfach stört ist, dass das Senden dann dem IO-Handler obliegt, das Empfangen aber in der Hand des Benutzers ist. Das
Receive
im Socket Interface wäre damit auf jeden Fall obsolet.