V
Hmm shit, das Problem liegt doch woanders. Nämlich das die Timeouts irgendwie garnicht bei select eingehalten werden. Muss nochmal schauen, ob ich da nicht irgendie einen Null Pointer übergeben habe.
mfg olli
Edit: Hmm kann mir jemand sagen, wie ich einen TCP Clienten auf Non-Blocking setzen kann?
Der Socket wir mit socket(AF_INET, SOCK_STREAM, 0) erstellt, und mit connect() mit der entsprechenenden Adresse verbunden.
Prüfe das ganze so mit non-blocking:
FD_ZERO(TNetwork.tFDSRead)
FD_SET(iSocket, TNetwork.tFDSRead)
FD_SET(iSocket, TNetwork.tFDSRead)
If select(0, TNetwork.tFDSRead, Null, Null, tReadTimeout) = SOCKET_ERROR Then Return 0
Sorry, ist kein C Code, aber wenn ich das ganze mit Clients mache, die ich mit accept bekomme, geht das verfahren auch so. Bloß eben das ich beim ersten FD_SET den Listen-Socket angebe. TNetwork.tFDSRead ist auf 10 Sekunden gesteltl(funzt wie gesagt bei accept Clients richtig).