I’m afraid I was not able to reproduce the problem. I simulated your environment as follows:
On my PC I started our internal tool WinSock.exe with the following command line parameters:
winsock.exe -l 150 -i 5 -n 8 8123
The tool acts as a TCP server. It waits for an incoming connection on port 8123, then sends 8 packets of 150 bytes each, every 5ms. This leads to a throughput of 240kB/s.
On the Colibri T20, I ran the TcpReceive.exe application to receive the data and verify that there is no data lost. The Colibri T20 is in its factory default configuration, plus the .NET CF V3.5 is installed.
I received more than 5 million packets (750MB) without losing a single Byte. I tried to stress the WinCe system by running other applications and limiting the CPU frequency to 216MHz - still the data was received reliably.
All data received up to packet #5056865
All data received up to packet #5056880
All data received up to packet #5056888
Can you please try to locate the difference in your setup? Does my setup work on your hardware, too? The C# application TcpReceive.exe will require some adaptations (IP address) in order to match your environment.