Note: The following article refers primarily to TCP-Com however the same concepts also apply to all “Serial Device Server” hardware as well as all “Virtual Modem” software.
Most PCs that are connected to the Internet are not connected in a manner where the PC's IP Address is visible to the rest of the Internet. In most cases the PC will be connected to a router that is connected to the Internet and router will assign “Local IP Addresses” to all PCs that are connected to it creating a “Local Area Network”. The router shields all the workstations in the local area network from the rest of the Internet by not allowing TCP/IP connections directly to the workstations within the network. The router's IP Address is visible to the rest of the Internet, however when you run software that connects to resources on the Internet (web pages, email servers, etc.), the router actually establishes all TCP/IP connections for you and “routes” all data between the connected client workstations and the external servers out on the Internet.
Since almost all TCP/IP connections from a workstation are initiated as “Client” connections where some client software is specifying the IP Address or URL of the server that it wants to connect to, no special configuration of the router needs to be performed because the router will keep track of all outgoing client requests and automatically “route” all data received from a Server back to the specific client workstation that established the connection. In other words, if you configure TCP-Com as a TCP/IP “Client” where it will connect to a specific IP Address and Port number for a Server located somewhere on the Internet, you do not need to make any configuration changes in your router.
It is only when you want to run TCP-Com as a TCP/IP Server on a workstation that is behind a router that you will need to change your router configuration to allow this to happen.
All routers are configurable to support a feature called “Port Forwarding”. Port Forwarding is basically a way for a router to map TCP/IP client connections that are established directly to the IP Address of the router (i.e. the IP Address that is visible to the rest of the Internet) and forward them on to a TCP/IP Server running on a workstation within the local area network behind the router (i.e. a workstation IP Address that is not visible to the rest of the Internet). TCP-Com and Serial Device Server hardware can both be used to send and receive serial data over the Internet however you will almost certainly need to re-configure your network router hardware to make this possible.
For example, suppose that you want to run TCP-Com as a TCP/IP Server where it is listening for connections on Port 1000 on a workstation that has a local IP Address of 192.168.1.100 and is connected to the Internet through a router. The IP Address 192.168.1.100 is a local IP Address that was assigned by your router and therefore it is not visible to the rest of the Internet. In order for a TCP/IP Client that is not part of your local area network (i.e. a client somewhere out on the Internet) to be able to connect to the Server port that TCP-Com is listening for connections on, you would first need to configure your router to “forward a port” from the router's IP Address to port 1000 of the IP Address of the local workstation where TCP-Com is running as the Server (in this case 192.168.1.100). You would then need to configure the TCP/IP Client (located somewhere out on the Internet) to connect to the IP Address of the router using the port number that was forwarded. This means that you will also need to know the IP Address of the router, which is typically assigned by your Internet Service Provider.
Fortunately all routers are easily configurable to implement port forwarding however they are not all the same therefore you will normally need to learn how to configure your particular router using whatever documentation is available for it. Most routers are configurable using any web browser and the configuration steps are fairly easy. You should also be able to use the router's configuration interface to find out the IP Address that the router is using for connection to the Internet. You can also find out your router's IP Address using the following web page: http://checkip.dyndns.org/ To find out your local IP Address, open a Command Prompt window (select Start – Program Files – Accessories – Command Prompt) and enter the command: IPCONFIG.
The following web site is an excellent place to learn more about “port forwarding” as well as to learn how to configure different makes and models of routers: www.portforward.com
Other things that may affect your ability to connect to TCP-Com across the Internet are Firewalls as well as the fact that most router IP Addresses are assigned dynamically by your Internet Service Provider. If your router's IP address is assigned dynamically, then the router's IP Address could change depending on how your ISP implements the connections. You may be able to contact your ISP and request a “Static IP Address” for your router so that it's IP Address never changes. Another issue is that your router may also be configured to dynamically assign local IP Addresses to the workstations in your local area network. If this is the case then the IP Address of your local workstation could also change. To get around this, you should also be able to configure your router or Windows to use a static IP Address for your PC instead of having the router automatically assign a dynamic one.
Firewalls are either software or hardware based security systems that are designed to block outside access to TCP/IP ports. Windows XP has a built in firewall that will normally block access to TCP/IP ports unless you specifically grant access to those ports in the Firewall settings. Fortunately the Windows Firewall will normally prompt you to grant outside access to a TCP/IP Server port as soon as the TCP/IP server software starts “listening” for client connections. For example, if you configure TCP-Com to run as a TCP/IP Server, as soon as you activate it the first time, the Windows XP Firewall software will pop open a window asking you if you want to allow external connections to TCP-Com. Once you allow connections to a specific application (like TCP-Com), Windows will remember your selection so that you do not have to enable connections each time you start a TCP/IP server. You can also manually configure the Windows Firewall in your control panel to allow external client connections to specific application programs.
The following web site is an excellent place to learn more about Firewalls including how they work and how to configure them to allow connections to get through: www.firewalling.com