客户端程序设计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校验)




原文地址:https://www.cnblogs.com/ustcfighters/p/5717447.html