一、课程信息
打卡时间:2022.8.6
课程名称:C/C++气象数据中心实战,手把手教你做工业级项目
章节名称:开发基于tcp协议的文件传输子系统 4-8 4-9
讲师: 长歌_吴从周
二、今日课程
课程内容:(1)初步捋清客户端上传程序的逻辑 (2)初步搭建TCP客户端上传程序和服务器的框架
三、学习心得
3.1 关于TCP客户端程序和服务器程序的注意点
和FTP文件传输系统类似,TCP文件传输系统的客户端程序分为两个:上传程序和下载程序,服务器程序只有一个,根据客户端传递的报文来判断当前执行上传还是下载任务。这样做的好处是,由于客户端的上传和下载程序差异较大,如果将两个功能放在一起,逻辑比较复杂同时程序也会比较臃肿,而服务器将上传/下载功能放在一起的原因是,可以根据报文执行上传和下载功能,这样就不需要额外开辟监听端口。
3.2 客户端上传程序的逻辑
客户端上传程序的主要逻辑包括:
1)登陆
2)获取本地目录中文件清单
3)把文件信息发送到服务端
4)把文件内容发送到服务端
5)接收服务端的确认报文
6)重复3到5,直到全部的文件被发送完成
6)回到2,继续上传新文件
和ftp程序类似,程序要传入的参数很多,这里也需要用一个结构体来存储文件的参数。今天学习的内容主要是搭建上传程序的架构,包括用a.结构体来存储程序的参数;b.将客户端程序传入的的参数上传给服务器;c.心跳服务
客户端程序常驻内存。需要每个几秒执行一次传输任务,后续会涉及程序的调度
3.3 服务器处理程序
今天完成的服务器处理程序主要包括接收客户端上传的结构体报文以及对客户端的心跳服务进行响应。服务器待完成的功能较多,会在之后的学习中逐步晚上。
tcp文件传输程序还是比较复杂的,为了方便debug,服务器注释掉了多进程的代码,使用单进程便于调试。今天的主要时间也是花在了调试上,用gdb调试还是不太习惯。