First problem - don't use such a big data packet. The standard maximum packet size on an Ethernet is around 1500 bytes, of which at least 56 bytes will be lost to the Ethernet header, IP header, and TCP header. Also, the default MSS (Maximum Segment Size) for TCP is around 540 bytes. So any packet that you send that is bigger than MSS is going to be fragmented at the IP layer, and fragmented packets take a lot of CPU to put back together. It's also extra cost to send.
Second. See if you can tell Trumpet to use a 1024KB MSS. If so, then you can send 1KB of data each time. If not, drop back to 512B. That will fit within the MSS and avoid fragmentation.
Finally, don't bother with the 1 byte return packet from the Athlon. TCP/IP handles flow control just fine. You should be able to blast packets from the 386-40 at full speed with no ACKING. That will speed things up a lot.
My 386-40 is getting over 470KB/sec using a similar test. My compiled C code is going to be faster, but your compiled QB code should be better.
Second. See if you can tell Trumpet to use a 1024KB MSS. If so, then you can send 1KB of data each time. If not, drop back to 512B. That will fit within the MSS and avoid fragmentation.
Finally, don't bother with the 1 byte return packet from the Athlon. TCP/IP handles flow control just fine. You should be able to blast packets from the 386-40 at full speed with no ACKING. That will speed things up a lot.
My 386-40 is getting over 470KB/sec using a similar test. My compiled C code is going to be faster, but your compiled QB code should be better.