网络编程学习笔记2-ttcp
使用虚拟机编译muduo,并尝试使用两个虚拟机建立tcp,视频p6笔记
本笔记参考的视频链接:https://www.bilibili.com/video/BV1Ht411p7wx?p=6
库链接:https://github.com/chenshuo/muduo
1生成和编译
1.1下载源代码到你喜欢的文件夹
git clone https://github.com/chenshuo/muduo.git
1.2编译
根据官方文档,运行
./build.sh
要是你的库完整,应该会顺利编译通过
假如缺失一些库,你就先试试yum install 库名
我这里提示安装的protobuf版本太新了,有些函数名找不到,毕竟这个muduo是2014年写的了,所以你极有可能也会遇到这个问题
1.3重新下载旧版本protobuf,生成并编译
既然2014年,咱们就下一个2014年的protobuf,我下了2.6.0版本的,链接,或者你自己选一个
上传到服务器
tar zvxf protobuf-2.6.0.tar.gz
cd protobuf-2.6.0.tar.gz
./configure –prefix=/usr/local/ #注意一定要指定一个新文件夹,不然到时候卸载就很难受,养成好习惯
sudo make #要编译很久
sudo make check
sudo make install
1.4运行
编译完成后或生成一个build文件夹,运行/build/bin里对应的文件就可以了,例如:
./ttcp_muduo -r #服务端
1.5总结
我算是个linux小白吧,生成、安装和编译这些操作不是很熟悉,感觉服务器最复杂的就是一开始的环境设置了,如果能用docker技术来解决一下就好了
2两个独立虚拟机使用ttcp建立连接
2.1克隆虚拟机
将服务端的虚拟机直接克隆,减少配置环境的时间
2.2启动服务端
在bin目录下
while true;do ./ttcp_muduo -r;done
响应如图
2.3启动客户端
./ttcp_muduo -t 192.168.200.133
这里响应失败,还没找到原因
{% asset_img 图2.png 图2.png %}找到原因了,原来是因为服务端5001端口没开放,我直接关闭防火墙就可以了
systemctl stop firewalld.service(停止防火墙)
systemctl start firewalld.service(打开防火墙)
systemctl disable firewalld.service(关闭开机自启)
然后再运行以上客户端命令,服务端就收到了
这里再记录一些其他常用的防火墙和端口命令
systemctl status firewalld.service(查看防火墙开启还是关闭)
sudo firewall-cmd --list-all(可以查看端口开放情况)
sudo firewall-cmd --add-service=http --permanent (允许http服务)
sudo firewall-cmd --add-port=8080/tcp --permanent(打开8080端口)
sudo firewall-cmd --reload (查看端口开放情况)
sudo firewall-cmd --list-all