Networking: When client or server DC's, reconnecting becomes impossible unless restarting the app

Let’s suppose I have port 1000 and port 1001 that are being used to connect between a server, S, and a client, C. Upon connect, both C and S can send information successfully through port 1001 (let’s pretend I don’t send any information through port 1000). When I simulate an outage by leaving the server running but DC’ing the client, once the client tries to reconnect through port 1001, it cannot. However, when I try to use port 1000, I can connect to the server just fine. Once I restart the client, now both port 1001 and port 1000 cannot connect.

Once the server’s port is connected to, it cannot be reconnected-to unless restarted.

My suspicion is that there is some sort of internal session system that keeps a connection alive. I’m not sure what component to std::mem::drop() in order to restart the connection process (or maybe, there is another function? Would I have to drop the stream?)

I am using the tokio-kcp protocol, and as the package implies it is asynchronous. I was thinking about maybe dropping the Rc<UdpSocket>, however, this would interrupt all other connection inbound to the server. Thus, I must find another solution.

Any ideas out-there?

Thanks,
Thomas