I am currently trying to interface one of our products with a linux/java based IPTV Solution. To communicate certain info my program acts as a .Net TCP Socket Server and accept a variable length data prefixed / affixed by STX and ETX characters.

Having worked on similar interfaces it seemed straight forward. Normally socket.Receive method will take all the data sent by the client will return number of bytes in the buffer. However, in this case the data seems to be split in multiple buffers i.e. even if the client send a single stream of data, at the server it seems to get come randomly in 3-4 splits.

I have tried to use things like socket.DontFragment = true or noDelay = true and set the socket buffer size and even while receiving read a large buffer ... but still it does not seem to work...

Ironically a age cold based on VB6 with winsock seems to work correctly....

Have any 9'ers faced any similar problems ? If so what was the solution ...