aber der test entspricht ja nicht dem wahren system, welche du implementierst, oder? ein client wird doch eine anfrage stellen und diese beantwortet bekommen? und nicht die ganze zeit "angeschrieen"?
die reihenfolge bei deinen anfragen und vor allem die zeit ist doch egal. ein paar millisekunden hin oder her. wenn der server auf eine anfrage passend reagiert, dann bekommst so früh wie möglich deine antwort. an dieser stelle musst eben einen timeout einrichten.
zudem denke ich, dass du aufgrund deiner ciritcalsections in diesen fehler läufst. ich schätze, dass dein programm wo "rein rennt", obwohl es noch keine daten hat. diese kann es ja auch nicht haben, da der server mit noch anderen dingen beschäftigt ist. dies kann aber auch durchaus daran liegen, dass andere programme die cpu-zeit für sich beanspruchen oder deine server-software eben gerade einfach nicht die zeitscheibe hat. wenn es wieder an die reihe kommt, dann bekommst schon deine daten
zusammenklappen wird deine server-anwendung nun deswegen nicht, außer du programmierst echt mies *hehe*
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)