I think the answer depends on the number of customers you expect.
If you will never have many client connections open, I would say disconnecting the connection and calling it good, especially if there is a problem with the delay - even on local networks, I saw that it takes several milliseconds to initialize. If you expect hundreds or thousands of clients to connect and do this, however, I would connect again. As others said, leaving non-blocking sockets open often means that you have a thread left running, which can take up several megabytes of stack space for each thread. Do this a few thousand times and you will have a big problem on most machines.
Another problem is port space. Just because the TCP / IP stack gives us 65,535 shared ports, this does not mean that they are all usable - in fact, most local firewalls will prohibit most of the use, so even if you have enough memory to run thousands of simultaneous streams, you can very likely exit ports if you leave a lot of connections at the same time.
source share