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

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

【學(xué)習(xí)打卡】第3天 多進(jìn)程的網(wǎng)絡(luò)服務(wù)端

標(biāo)簽:
C++

一、课程信息

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

二、今日课程

课程内容:(1)搭建多进程的网络服务程序架构(2)TCP短链接/长连接和心跳机制

三、学习心得

搭建多进程的网络服务程序架构

一般的多进程网络服务器程序流程是这样的,父进程在初始化服务器后开始监听指定的端口,当收到TCP连接后,父进程fork出子进程用于处理业务,随后父进程继续保持监听状态。这说明了TCP服务器的父进程可以有多个处理不同业务的子进程。程序流程虽然较为简单,但是有几个需要注意的地方:
1)僵尸进程
因为处理业务的子进程常常会先于父进程退出,如果子进程先退出,内核向父进程发送SIGCHLD信号,如果父进程不处理这个信号,子进程会成为僵尸进程(僵尸进程随着父进程的退出而消失)
僵尸进程的危害:如果子进程在父进程之前终止,内核为每个子进程保留一个数据结构,包括进程编号、终止状态和使用CPU时间等,父进程如何处理子进程推出的消息,内核就会释放这个数据结构,如果父进程没有处理子进程退出的信息,内核就不会释放这个数据结构,子进程进程编号就会一直被占用,但是系统的可用进程号是有限的,如果大量的产生僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程,这就是僵尸进程的危害。

解决僵尸进程的三种方法:
	(1)在父进程中忽略SIGCHLD信号
		signal(SIGCHLD,SIG_IGN)
	(2)在父进程中加入wait或者waitpid函数
		但是wait会阻塞
	(3)设置CHLD的处理函数
		void func(int sig){
			int sts;
			wait(&sts);
		}
		signal(SIGCHLD,func);

2)在Linux中一切皆文件,由于子进程会拷贝父进程文件描述符的副本,因此当开启多个子进程时造成不必要的资源消耗。因此可以close父进程的connect_fd,close子进程的listen_fd。如果要查看指定进程的文件描述符信息可以:

cd /proc
cd 进程号
cd fd

父进程关闭自己的文件描述符是不会影响到子进程,同理子进程关闭自己的文件描述符是不会影响父进程的。

TCP短连接/长连接和心跳机制

TCP短连接较为简单,而长连接在连接建立后要一直保持,如何维持这一过程呢?
一般来说服务器端会设置客户端连接的超时时间,当客户端很长一段时间不向服务器发送消息后,服务器会关闭和客户端的连接,客户端需要加入心跳机制,每隔一段时间向服务器发送数据包以维持连接。secureCRT使用的反空闲功能就是这个道理。

四、课程学习截图图片描述图片描述

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

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

評(píng)論

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

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

100積分直接送

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

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

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

購課補(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
提交
取消