zoukankan      html  css  js  c++  java
  • 客户端程序设计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校验)




  • 相关阅读:
    Android OpenGL ES 2.0 (四) 灯光perfragment lighting
    Android OpenGL ES 2.0 (五) 添加材质
    冒泡排序函数
    javascript object 转换为 json格式 toJSONString
    Liunx CentOS 下载地址
    jquery 图片切换特效 鼠标点击左右按钮焦点图切换滚动
    javascript 解析csv 的function
    mysql Innodb Shutdown completed; log sequence number解决办法
    Centos 添加 yum
    javascript 键值转换
  • 原文地址:https://www.cnblogs.com/ustcfighters/p/5717447.html
Copyright © 2011-2022 走看看