Web服务器1-socket编程

Web服务器1-socket编程

20191331 lyx

实验内容

基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用Linux Socket实现:

  1. 服务器部署到华为云服务器,客户端用Ubuntu虚拟机。
  2. time服务器的客户端服务器,提交程序运行截图
  3. echo服务器的客户端服务器,提交程序运行截图,服务器把客户端传进来的内容加入“服务器进程pid 你的学号 姓名 echo :”返回给客户端
  4. 要用多线程或者多进程实现,至少连接两个客户端。
  5. 把服务器部署到试验箱。(加分项)

实践开始

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

获取本机ip https://www.jianshu.com/p/cbb3e21ef685

posted @ 2021-12-11 21:31  20191331liyu  阅读(68)  评论(0编辑  收藏  举报