Das Problem besteht darin, dass mit den Zeilen
Code:
flags = fcntl(sock: F_GETFL);
flags = %bitor(flags: O_NONBLOCK);
fcntl(sock: F_SETFL: flags);
der Socket nicht geblockt wird. Wenn ich diese Zeilen weglasse und die Waage aus irgendeinem Grund nicht antwortet, bleibt das Programm ohne Fehlermeldung stehen.
Der Versuch mit
Code:
d TimeOut DS
d Sekunden 10i 0 inz(5)
d usec 10i 0 inz(0)
RetCode = setsockopt(sock
:SOL_SOCKET
:SO_RCVTIMEO
:%addr(Timeout)
: %size(Timeout)
);
ein Timeout zu setzen, bringt leider auch keinen Erfolg. Habe ich vielleicht beim Setzen des Timeout einen Gedankenfehler?
Bookmarks