I have a Visual Basic client program that sends data over TCP to a K64 running a simple, custom server under MQX 4.2. The client sends its data and then informs the server that it's closing the socket connection. Wireshark shows a FIN is sent by the client and the server's TCP stack automatically responds with its ACK. After that though, the server never sends its FIN (or even a RST) to the client automatically (nor manually when I call closesocket(), shutdown() or shutdownsocket() in my server code). The server really sends no data after the initial handshake that I wrote, so it shouldn't be "waiting" for anything.
If I run a web server in MQX, the web server will correctly send out a FIN first, followed later by the PC web browser's ACK, then a FIN. But when a remote client initiates closing a connection, this tear-down handshake doesn't happen. Can someone try and confirm this behavior?
TL; DR:
The connection closer sends FIN; MQX sends ACK back, but no FIN.