• 客户端程序设计V1


    客户端程序V1.0


    1. 界面设计

    1.1 登录界面

    1.2 [课程选择界面]

    1.3 主界面

    <留待张凯补充>


    2. 文件名以及文件路径约定

    1. 客户端本地文件名以及文件路径:以缓存形式存在<张凯补充具体的路径>
    2. 服务器端文件路径:/media/course/课程号/videos/课程号_年月日_分段.avi

    3. 客户端与服务器端的连接模型

    1. 连接方式:TCP按需连接;
    2. 连接模型:一(服务器)对多(客户端)

    4. 工作逻辑

    1. 首先服务器端程序一直运行;
    2. 客户端进入登录界面:填写用户名+密码,向服务器发送用户信息以及登录请求;服务器端响应客户端的登录请求,并返回对应教师的课程信息以及状态码1;
    3. 客户端选择课程,进入主界面;
    4. 客户端开始录制视频,并向服务器发出传文件请求(文件名),服务器端响应1(状态码2:表示接收到文件名),客户端发送校验值,服务器端响应2(状态码3:表示接收到响应值),客户端发送视频数据,服务器循环接收视频数据,客户端发送完成后主动断开连接,服务器端检测到网络连接断开(文件传输完成或者网络中断,保存文件并进行文件校验,如果通过则向数据库写入视频文件路径,不通过则放弃文件),服务器向客户端返回状态码3:表示视频文件是否正确完成传输。
    5. 客户端结束录制或者关闭时,向服务器发出结束信号,服务器端完全清除客户端连接信息。

    A1. 需要考虑的问题

    问题 解决方案 备注
    如何处理并发情况? 服务器端采用多线程编程,程序模型采用manager/workers
    服务器端如何表示客户端? 使用自定义的数据结构来表征不同的客户端连接 具体实现见《Linux服务器端程序设计》
    如何保证传输过程中的密码安全? 避免使用明文传送,可以使用MD5加密
    如何保证传输的视频数据完整性? 进行完整性校验,在传送视屏前发送校验值(传输校验值时使用CRC校验)




  • 相关阅读:
    再次梳理css3动画部分知识
    node搭环境
    微信小程序可用的第三方库
    省市区三级联动下拉框效果分析
    jq回到顶部效果分析
    jq案例中遇到的知识点总结(会飞的小鸟和三级联动)
    js正则表达式大全
    js中表达式 >>> 0 浅析
    为什么js中要用void 0 代替undefined
    npm install、npm install --save、npm install --save --dev、npm install -S、npm install -D的区别
  • 原文地址:https://www.cnblogs.com/ustcfighters/p/5717447.html
Copyright © 2020-2023  润新知