> Irgendwie verstehe ich aber nicht, wie ich diese Schleife bauen soll
- Im XXX_Define DevIo_OpenDev() aufrufen. Dieser kann auch ein client socket
oeffnen, aber das wesentliche ist $conn->fileno() ins $hash->{FD}, bzw. $hash
in den globalen %selectlist einzutragen (wird von DevIo_OpenDev erledigt).
Damit wird per globalen select auf die Verbindung aufgepasst, und wenn was zu
lesen gibt, dann wird XXX_ReadFn aufgerufen.
- XXX_ReadFn liest die Daten normalerweise per DevIo_SimpleRead(). XXX_ReadFn
muss danach feststellen, ob die Nachricht komplett ist. Wenn ja, dann werden
diese verarbeitet, wenn nicht, dann werden die Daten ueblicherweise im
$hash->{PARTIAL} bis zum naechste Aufruf zwischengespeichert.
- Falls die andere Seite nicht erreichbar ist, dann wird der Status von
DevIo_SimpleRead auf DISCONNECTED gesetzt, und solange im Abstand von 5
Sekunden XXX_ReadyFn aufgerufen (indem man $hash in %readyfnlist eintraegt),
bis dieser die Verbindung wieder (mit DevIo_OpenDev) oeffnen kann.
> warum socket->recv immer abbricht.
Weil es nicht blockieren will, und die Daten noch nicht komplett vorliegen.
> K�nnt Ihr mir vielleicht eine "Vorbild"-Modul empfehlen?
contrib/00_TAHR.pm