上QQ阅读APP看书,第一时间看更新
1.5 公网和局域网
本书上一版出版后,有些读者问“这套程序能不能在外网运行”和“怎样写外网能连接的服务端”。其实只要是服务端所在的计算机拥有外网IP,便能够访问。本地程序和外网的程序完全一样。
假设读者将服务端连到公网,例如连接宽带,或者购买阿里云、腾讯云等服务器,就可以获得这一台计算机的公网IP(如图1-23所示的123.207.111.220)。客户端只需连接这个公网IP和端口,便能够连接到服务端。
图1-23 公网示意图
有些读者家里使用了无线路由,或者在校园网的局域网内,那情况就稍有不同。如图1-24所示,一些读者把宽带连接到家里的路由器,再由路由器分发到多台计算机(校园网、公司局域网同理),在这种情况下,路由器会有公网和局域网两个IP。在图1-24中,路由器的公网IP是123.207.111.220,局域网IP为192.168.0.1,连接路由器的计算机只有内网IP,它们分别是192.168.0.10和192.168.0.12。如果将服务端放到连接路由器的某台计算机上,因为它只有局域网IP,所以只有局域网内的计算机可以连接上。如果拥有路由器的控制权,可以使用一种叫“端口映射”的技术,即设置路由器,将路由器IP地址的一个端口映射到内网中的一台计算机,提供相应的服务。当用户访问该IP的这个端口时,路由器自动将请求映射到对应局域网内部的计算机上。
图1-24 局域网示意图
如果没有路由器的控制权(例如校园网),将服务端程序部署到阿里云、腾讯云等云服务器即可。