Thanks for the reply - I appreciate the patience with my terminology.
You helped a lot by saying the server side is closed when the client
side socket is in CLOSE_WAIT.
I think I have learned that the EOF I talk about needs to be sent to
the _client_ application on the local machine by the API of the running
application. If I understand correctly, after CLOSE_WAIT there could be
data still in the buffer on the client side, but in this case I have
read all data after the QUIT I send to the server.
Unfortunately I cannot just close the connection via the java
SocketChannel.close() command as that is not enough on linux and other
platforms such as Sun. See this bug report if interested (I didn't file
it).
http://bugs.sun.com/bugdatabase/view...bug_id=6215050
Some purists say that by calling close(), and not closing the Socket,
it is not a bug, but anyways...
>From a tcp/linux perspective, my questions are:
1) What is the state - on the client side - after CLOSE_WAIT ? Can
reading and discarding any buffered data on the client side and sending
EOF to the client application change the state from CLOSE_WAIT to
something else? Is the socket closed when I no longer see CLOSE_WAIT?
2) If I understand correctly, the are 5 tcp states: SYN, ACK, data,
FIN, and RST . Which of those can I think of when netstat shows
CLOSE_WAIT, and which of those follows the CLOSE_WAIT to the next
state?
iksrazal