LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

TCP Open and Close using NI TCP VI's

Do I need to close the TCP connections on both ends.  For example, I have a "server" that Listens and then a client that opens the TCP connection.  Do I have to close the TCP connections on both ends.  I'm closing it at the client side but is it also suppose to be closed at the Listening end?
0 Kudos
Message 1 of 2
(2,818 Views)


@Guy04 wrote:
Do I need to close the TCP connections on both ends.  For example, I have a "server" that Listens and then a client that opens the TCP connection.  Do I have to close the TCP connections on both ends.  I'm closing it at the client side but is it also suppose to be closed at the Listening end?


Whenever you optain a LabVIEW refnum through an Open or similar function you should close it at some point too. A TCP refnum is really sort of a pointer to a local network socket and therefore represents resources in the form of memory and network stack management information. Not closing a connection refnum returned by the listen node may prevent your server to serve new connections after some time, since all internal network ports are blocked or the nework stack runs out of resources.

So close the connection refnum returned by the Listen function after the server is done serving your client and of course do the same on the client side as you already did. Also if you use Create Listener and Wait on Listener (which allows you to write server applications that can serve multiple connections simultanously) close the Listener refnum too when your server is done. Not doing so may prevent the server to be opened at the same port without restarting LabVIEW or at least your application.

Rolf Kalbermatter

Rolf Kalbermatter

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 2 of 2
(2,805 Views)