Hi,

I've written a network program based on berkeley socket standard.

Everything works when it comes to accepting connection, connecting, sending data and receiveing data.

However, if I run a Windows server, and a Linux client. and the Linux client connects to the server, and then starts sending data through send() function, then the data is not received at the Windows Server?? I'm using recv() to catch it.

The Linux Client can receive data from the Windows Server... but not send...

Also Linux Server with Linux Client works normally... Same with Windows on Windows.

This is very strange, do I need to set some setsockopt() or something on Linux? Am I missing something standard?

Is it possible that Linux manipulates the data of the packet? Because the first 2 bytes of the data is the length of the packet, and so my receiver could deny an incorrect formatted data (and so it looks like there was no data sent), I haven't checked yet if the data is actually transmitted or not at the Windows Server through Wireshark or something. But hoping to see if someone knows more.

By the way its Linux-based Ubuntu what I'm testing on.

Thanks,