I am using ICS in a 32 bit replacement of a 16 bit application that operates a laboratory instrument that uses TCP/IP. It is working well except for an occaisional failure to catch all of the packets sent after a data collection. The instrument sends a header packet followed by 49 data packets. The instrument does not wait for the host computer to acknowledge each packet. Using Ethereal, I see two packets of 1408 data bytes each from the instrument followed by an ACK from the host computer, then a single 1408 byte packet from the instrument and an ACK from the host. This pattern repeats until all 49 packets have been sent.
Most of the time, this works. Sometimes, especially if the host is busy, the host ends up one packet short of the complete message. I call Receive() on every OnDataAvailable and store the data in a preallocated buffer, incrementing the pointer passed to Receive() by the number of bytes transferred so that no copying is needed after Receive to assemble the packets. There are about 20 - 25 ms between the two packets in a pair. Is the server (instrument) behaving acceptably? Is there anything I can do to better accomodate it? Thanks, John -- 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