第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【學(xué)習(xí)打卡】第6天 構(gòu)建基于TCP協(xié)議的文件傳輸系統(tǒng)_3

標(biāo)簽:
C++ 活動(dòng)

一、课程信息

打卡时间:2022.8.8
课程名称:C/C++气象数据中心实战,手把手教你做工业级项目
章节名称:开发基于tcp协议的文件传输子系统
讲师: 长歌_吴从周

二、今日课程

课程内容:(1)结束客户端上传程序以及服务端相应上传业务 (2)学会了gdb调试的技巧

三、学习心得

3.1 结束客户端上传程序以及服务端相应上传业务

在写代码的时候碰到了一些小疑问,比如为什么有了TcpServer.Read()/Write()、TcpClient.Read()/Write(),为什么在写代码的时候却使用Readn和Writen函数?原因是TcpServer.Read()/Write()、TcpClient.Read()/Write()会给报文加上报头,以解决粘包问题。传文件内容的时候,不需要报头,也不关心粘包问题,所以可以选择较为简单的Readn和Writen函数。
在写文件传输子系统代码的时候,设置临时文件非常重要。在上传业务中,上传数据会先存在临时文件中,等传输完毕再将临时文件命名为正式文件。这样做的好处是在如何客户端程序意外中断导致上传数据不完整,不会影响到正式数据,后续可以再次传输。
由于老师提供的框架中UpdateStr函数使用char数组作为局部变量,这可能会存在内存溢出的问题,因此我使用了string对程序进行了改进并命名为UpdateStr_string。
在调试程序的过程中,filesever程序不正常退出,后续再次调用filesever程序发现一直bind不成功。当一个进程不正常退出时,bind失败的问题要考虑到端口被占用的问题,但发现端口被进程占用可以用kill命令强制杀死进程。
查看端口是否被占用的命令是:

netstat -tunlp |grep 端口号

3.2 学会了gdb调试的技巧

总结来说就是多打log,老师提供的logfile类非常好用,多在一些关键地方打log,同时要学会用二分法排查bug,通过log或者printf快速定位到出bug的位置。大多数问题都是在一些微小处不好发现,这时候log的重要性就体现出来了。特别注意,对于客户端上传到服务器中的文件路径,要提前在服务器用mkdir创建好,因为实际开发过程中往往是要在指定的目录下创建文件,如果写的服务器程序会主动创建目录会造成不必要的麻烦。
在程序调试好之后注释掉多余的log,让日志尽量简洁明了。

四、学习截图

图片描述
图片描述

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消