Hello ICS Mailinglist, this is a bugreport that on localhost the windows kernel reads megabytes of data before a TWSocket client can block. As you can see on the following explanation and the images on
http://projekte.priv.de/ics_localhost_bug/ , the problem is the windows kernel: "client_internet.png" shows that if I upload with a TWSocket Client (see client.pas) to a Linux server which blocks immediately then the client also blocks after the first write. If I use exactly this client.pas to upload to a simple TWSocket Server (see server.pas) on localhost then it first blocks after 16 Megabytes! (about 1600 writes of a 100 KB buffer!) See client_localhost.png. If you look at the "memory_use_2.png" you can see that the processes do not consume the memory sent! Not the client and also not the server! So this is a issue of the windows kernel, Do you all agree? Any idear how to fix this, so the client blocks immediatly as it does on the unix server? Regards, Markus Mueller > WOW! I have another prove for Buffering of Winsock! The used Memory is > NOT increasing > at alll! This means that the WINDOWS KERNEL is caching this!!! > >> >> >>> Ok, this proves that Winsocks is buffering megabytes of data before >>> "TWSocket.pause" becomes active! >>> >>> >> Not quite correct, TWSocket.Pause becomes active immediately, however >> winsock obviously continues to buffer incomming data, in this case I >> think there's not much you can do and that won't be related to async >> sockets IMO. TWSocket.Pause just stops winsock event notification. >> >> >> >>>> Do you use LineMode? I do not think so but >>>> should be asked anyway. If LineMode is turned on the component >>>> indeed buffers data internally. >>>> >>>> >> >> >> >>> I am not using LineMode. If you look at TriggerDataAvailable you'll >>> see that it never >>> gaves the DoRecv in AsyncReceive a change to read. So I think it is >>> proved that the >>> problem is in Winsock, do you also think so? >>> >>> >> I doubt that it was a problem at all. Winsock does a lot of things in the >> background you cannot control, even when the socket handle is already >> closed. >> >> -- >> Arno garrels >> >> > > -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be