Web服务器1-socket编程
20191331 lyx
实验内容
基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用Linux Socket实现:
- 服务器部署到华为云服务器,客户端用Ubuntu虚拟机。
- time服务器的客户端服务器,提交程序运行截图
- echo服务器的客户端服务器,提交程序运行截图,服务器把客户端传进来的内容加入“服务器进程pid 你的学号 姓名 echo :”返回给客户端
- 要用多线程或者多进程实现,至少连接两个客户端。
- 把服务器部署到试验箱。(加分项)
实践开始
1.实践准备
- 服务端防火墙配置
首先进入防火墙配置 安全组设置
更改安全组规格 将待会socket
通信将要使用的端口放通
这里我选择将端口全部放通
- 实验环境
服务端:kali linux4.19.0-kali4-amd64
客户端1:openeuler 20.03 LTS x86_64
2.time服务器
- 部分代码展示
client:
server:
编译:
运行:
- 首先运行部署在服务端的server
- 客户端连接
3.echo服务
编译
运行截图:
4.多线程/多进程实现
由于一开始使用的就是多进程策略(是父进程保持循环而不是一次应答后消亡)
故这一步在time服务
的基础上实现多线程
编译
运行截图:
本实验所有代码均托管
码云链接:https://gitee.com/DKY2019/xxaqxt/tree/master/web-socket编程实践
tips
当出现段错误时 大概率是因为上次server服务仍在占用该端口 程序未停止
所以这时候就可以 netstat -anop | grep “端口号”
来找到占用端口的进程 PID
然后使用 kill -9 “pid”
结束该进程
之后你的socket就可以完成建立了
参考资料
Linux下获取当前进程ID、进程名、进程路径 https://blog.csdn.net/dezhihuang/article/details/51260001