例子是书78页的代码清单5-5
代码我就不打了,重点说说如何进行测试
作者的局域网拓扑图为:
79页,说明了作者使用了局域网内的2台主机(Kongming20和ernest-laptop)进行了测试
由于本人无类似的网络环境,考虑到手里只有阿里云服务器和MAC一台,故需要对测试命令做一些变更。
服务器挂起的测试指令:
./testaccept 192.168.1.109 54321
将上面这条指令(监听IP地址为192.168.1.109的54321端口)改为(监听IP地址为0.0.0.0的54321端口)
./testaccept 0.0.0.0 54321
客户端,我选择在本地,也就是在自己的电脑上进行测试,指令需要根据阿里云的IP地址来确定。
首先我们需要登录阿里云,查看自己云服务器的IP地址:
IP地址为106.15.52.233,那么本地(指的是)相应的指令为:
telnet 106.15.52.233 54321
54321 为之前确定监听的端口号
但是这样在本地访问依然不可行,会提示:
telnet: Unable to connect to remote host
原因是,需要将端口号54321加入到阿里云防火墙的通行规则中
添加方式如下:
然后测试就成功了,结果打印在服务端:
问题1:我为什么要对监听的ip地址进行修改?
起初跟作者一样,我也设置192.168.1.109,但是无法继续进行,原因我个人认为,在同一个云服务器上不存在192.168.1.109的主机地址,故无法监听
服务器依旧能跑的起来的,那么这就很奇怪了,没有这个ip地址,那么服务器在监听谁呢?
不知道服务器在监听xx:xx的话,可使用这条指令查看
netstat -nlptu
查询到的结果为:
这就很奇怪了,我设置的明明为192.168.1.109,到头来怎么变成了0.0.0.0呢,端口号却没变?
这个问题我也没弄明白,希望各路大神可以告知。
但是,测试还是接着做下去的,那既然这样的话,我就索性将指令进行了修改。