AnsweredAssumed Answered

No FIN sent?

Question asked by kackle123 on Jun 19, 2020

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.

Outcomes