As Mark said, TCPOPEN is basically doing 2 things: 1) opening the device driver and 2) creating a connection to a remote server. To CLOSE the device driver will also close the connection to the remote server if it is still open...but...it is possible for the connection to have already been closed by the server.
So...do a TCPOPEN and leave it open as long as you like, but if the .Connected member is ever false, call TCPOPEN again. When you are done, call CLOSE. The problem of opening and closing over and over is related to network resources usage and bad performance. It is completely appropriate to TCPOPEN, do some work, then CLOSE. But don't expect that a server is going to allow you to keep the connection open indefinitely with no activity...very few servers will allow that.
My major concern with TCP connections is that a user will use one client connection to talk to multiple servers flat out...open server 1, transact, close, open server 2, transact, close...ad infinitum. The network stack will eventually get very annoyed with you. Instead, create clients for each server. Open each and leave open and long as you are *actively* transacting, and reopen as required due to drops or kicks. When you are done, close. If you plan to have some time between transactions, go ahead and close immediately...mostly because the server will likely kick you anyway.
Does that help?