I have a 2 programs that are communicating via sockets on the same computer.
Currently 1.6 million bytes is taking about 7 seconds to transfer using TCP/IP.
I need to make it fast.
If I use a raw socket instead, and ignore the TCP/IP headers, then this should increase the speed? Is there anything else I can do to increase speed? Is the SOCKET_RAW option a straight copy or does it do anything else?
1.6MB shouldn’t take 7 seconds using “normal” TCP/IP – certainly not on the same machine! That suggests you’ve got inefficient code somewhere. I’d address that before trying to do anything “special” in terms of the networking.
EDIT: I’ve just written a short C# program on a netbook, and that transfers 2MB (generating random data as it goes) in 279ms. That’s with no optimization. Unless you’re running on a machine from the 1980s, you should definitely be getting better performance than that…