zoukankan      html  css  js  c++  java
  • Web服务器1socket编程

    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

  • 相关阅读:
    md5
    表空间
    create_index
    非额度合同和额度合同
    如何在linux中查找python安装包的路径
    Golang中的SingleFlight与CyclicBarrier
    linux安装protoc
    protobuf 的优缺点
    Xshell 连接 VirtualBox
    限制 input 输入框只能输入纯数字
  • 原文地址:https://www.cnblogs.com/DKYcaiji/p/15585428.html
Copyright © 2011-2022 走看看