This might occur when the connection is lost abruptly at the client side and the established TCP socket is left active but not operational.
To prevent this, detect such abandoned sockets and terminate the sessions, enable keep-alive detection at the server side:
var server = new FileServer();
server.Settings.KeepAlivePeriod = 30;
...
This instructs the server to send a short 'ignore' packet to the client each 30 seconds, which eventually triggers disconnect if the packet cannot be transmitted.