Question about sockets

Eljay Love-Jensen eljay@adobe.com
Mon Jul 28 03:23:00 GMT 2008


Hi Leonardo,

The gcc-help forum is not the correct forum for socket and pthread
questions.  I do not say this to chastise you, rather to inform you that
faster, more accurate help is likely to come from a more appropriate forum.

That being said...

Your source code is too long.  Could you trim it down to a much smaller
example that exhibits the problem?

Also, when you close your socket, it does not appear that you first did a
shutdown of the socket.

man 2 close
man 2 shutdown

You may want to adjust your socket options, such as linger or timeout.

man 2 setsockopt

The CLOSE_WAIT means the remote connection has finished sending data, and
your side has not yet done a shutdown and close.

The TIME_WAIT means that both sides have close'd the connection, but the IP
stack is obliged to wait a prescribed time before taking the connection
down.  This is normal, and expected.

Also, your communication may be affected by Nagle's algorithm.  In most
cases, Nagle's algorithm is a good thing.  For certain kinds of IP
communication (what I'd call "chatty" communication), it can introduce
undesirable latency.

Sincerely,
--Eljay



More information about the Gcc-help mailing list