博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
客户端程序设计V1
阅读量:6259 次
发布时间:2019-06-22

本文共 835 字,大约阅读时间需要 2 分钟。

客户端程序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

你可能感兴趣的文章
网络工程师笔试题总结
查看>>
我的友情链接
查看>>
C# DataTable的詳細用法
查看>>
vSphere网络原理及vSwitch
查看>>
df 命令
查看>>
jQuery 简介
查看>>
红帽新RHEL 7.1企业版发布
查看>>
Linux中的帮助功能
查看>>
Linux学习笔记——程序包管理之yum
查看>>
SqlServer转换为Mysql的一款工具推荐(mss2sql)
查看>>
go装饰模式,一个屌丝撸管的故事
查看>>
学习设计模式——命令模式
查看>>
【POJ】第一章 C/C++语言概述
查看>>
如何封装自己的js类库
查看>>
项目管理小小知识点总结
查看>>
ASP.NET之Javascript脚本的应用
查看>>
vlan间的互通
查看>>
ldconfig详解
查看>>
VBScript 页面的简单样例
查看>>
用c语言指针实现给整形数组冒泡排序
查看>>