If a client-server application hangs you may need to kill it and remove the connection before you can try again. In this case you also need to remove the hung socket, rather than waiting for it to time-out and CLOSE_WAITs will not go away unless you boot the system. They also consume lot of CPU and can cause the system to hang.
# netstat -Aan
shows you the partners of the session, the routing table is used to determine which adapter is to be used to get that packet across the network to the partner
Once you have the client and server addresses you can run: netstat -rn and see which route rule is taken. The entry to the left to the "IF" Column tells you which which adapter is being used.
Now from the rmsock you determined that the process of that established connection is a process call MTproc (could be anything) with a pid of nnnnn that has to use enI (from IF column) to send packet.
If there are no rules than the default applies
Assuming your server ip address is 18.104.22.168 and the TCPCB address you used is something like
f1000e0001a413b8 tcp4 0 0 22.214.171.124.45179 126.96.36.199 ESTABLISHED
# rmsock f1000e0001a413b8 tcpcb. Tels you the process is MTproc
Now check the "IF" column in the netstat -rn output and see which adapter is being used.
Next use the rmsock command to check who is holding the process.
# rmsock <addr of PCB> tcpcb
It can also checked as follows:
# netstat -Aan | grep 2100
f1000e0000da93b0 tcp4 0 0 127.0.0.1.2100 *.* LISTEN
f1000e0000d9b600 udp4 0 0 127.0.0.1.2100 *.*
f1000e000066e008 stream 0 0 0 f1000e0000662100 0 0
# rmsock f1000e0000da93b0 tcpcb
The socket 0xda9008 is being held by proccess 4653166
# ps -fp 4653166
user 4653166 1 0 05:41:12 pts/1 0:00 /MYAPPXXX
Killing this process should release the socket.