中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      網(wǎng)絡(luò)編程實(shí)習(xí)報(bào)告

      時(shí)間:2022-10-09 22:23:32 實(shí)習(xí)報(bào)告范文 我要投稿
      • 相關(guān)推薦

      網(wǎng)絡(luò)編程實(shí)習(xí)報(bào)告

        一段忙碌又充實(shí)的實(shí)習(xí)生活又告一段落了,相信你一定有很多值得分享的收獲,在實(shí)習(xí)報(bào)告中記錄下這來之不易的成果吧。你所見過的實(shí)習(xí)報(bào)告應(yīng)該是什么樣的?以下是小編整理的網(wǎng)絡(luò)編程實(shí)習(xí)報(bào)告,歡迎閱讀與收藏。

      網(wǎng)絡(luò)編程實(shí)習(xí)報(bào)告

        [實(shí)習(xí)目的]

        通過理論聯(lián)系實(shí)際,鞏固所學(xué)的知識(shí),提高處理實(shí)際問題的能力,并為自己能順利與社會(huì)環(huán)境接軌做準(zhǔn)備。

        [實(shí)習(xí)任務(wù)]

        Linux下網(wǎng)絡(luò)服務(wù)器開發(fā);本文總結(jié)了我對(duì)Linux下網(wǎng)絡(luò)服務(wù)器模型的認(rèn)識(shí)。

        [實(shí)習(xí)內(nèi)容]

        一、循環(huán)服務(wù)器

        1、循環(huán)服務(wù)器在同一個(gè)時(shí)刻只可以響應(yīng)一個(gè)客戶端的請(qǐng)求,對(duì)多個(gè)客戶程序的處理是采用循環(huán)的方式進(jìn)行。

        2、UDP循環(huán)服務(wù)器的實(shí)現(xiàn)非常簡(jiǎn)單:UDP服務(wù)器每次從套接字上讀取一個(gè)客戶端的請(qǐng)求,處理,然后將結(jié)果返回給客戶機(jī)。

        2.1、算法如下:socket(...);

        bind(...);

        while(1)

        {

        recvfrom(...);

        process(...);

        sendto(...);

        }

        3、TCP循環(huán)服務(wù)器的實(shí)現(xiàn)也不難:TCP服務(wù)器接受一個(gè)客戶端的連接,然后處理,完成了這個(gè)客戶的所有請(qǐng)求后,斷開連接。

        3.1、算法如下:

        socket(...);

        bind(...);

        listen(...);

        while(1)

        {

        accept(...);

        while(1)

        {

        read(...);

        process(...);write(...);

        }

        close(...);

        }

        3.2、TCP循環(huán)服務(wù)器一次只能處理一個(gè)客戶端的請(qǐng)求。只有在這個(gè)客戶的所有請(qǐng)求都滿足后,服務(wù)器才可以繼續(xù)后面的請(qǐng)求。這樣如果有一個(gè)客戶端占住服務(wù)器不放時(shí),其它的客戶機(jī)都不能工作了。因此,TCP服務(wù)器一般很少用循環(huán)服務(wù)器模型的。

        二、并發(fā)服務(wù)器

        1、為了彌補(bǔ)循環(huán)TCP服務(wù)器的缺陷,人們又想出了并發(fā)服務(wù)器的模型。并發(fā)服務(wù)器的思想是每一個(gè)客戶機(jī)的請(qǐng)求并不由服務(wù)器直接處理,而是服務(wù)器創(chuàng)建一個(gè)子進(jìn)程來處理。

        2、使用并發(fā)服務(wù)器可以使服務(wù)器進(jìn)程在同一個(gè)時(shí)刻有多個(gè)子進(jìn)程和不同的客戶程序連接、通信;在客戶程序看來,服務(wù)器可以同時(shí)并發(fā)地處理多個(gè)客戶的請(qǐng)求。

        3、算法如下:socket(...);

        bind(...);

        listen(...);

        while(1)

        {

        accept(...);

        if(fork(..)==0)

        {

        close(...);while(1)

        {

        read(...);

        廣東應(yīng)屆生實(shí)習(xí)報(bào)告網(wǎng)在線編輯整理本文。

        process(...);

        write(...);

        }

        close(...);

        exit(...);

        }

        close(...);

        }

        4、TCP并發(fā)服務(wù)器可以解決TCP循環(huán)服務(wù)器客戶機(jī)獨(dú)占服務(wù)器的情況,改善了對(duì)客戶程序的響應(yīng)速度;不過也同時(shí)帶來了一個(gè)不小的問題:為了響應(yīng)客戶機(jī)的請(qǐng)求,服務(wù)器要?jiǎng)?chuàng)建子進(jìn)程來處理,而創(chuàng)建子進(jìn)程是一種非常消耗資源的操作,這明顯增加了系統(tǒng)調(diào)度的開銷。

        5、為了解決創(chuàng)建子進(jìn)程帶來的系統(tǒng)資源消耗,人們又想出了多路復(fù)用I/O模型。

        5.1、該模型一般用函數(shù)select和相關(guān)的四個(gè)宏定義:int select(int fd,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout)

        void FD_SET(int fd,fd_set *fdset)

        void FD_CLR(int fd,fd_set *fdset)

        void FD_ZERO(fd_set *fdset)

        int FD_ISSET(int fd,fd_set *fdset)

        5.2、一般的來說當(dāng)我們?cè)谙蛭募x寫時(shí),進(jìn)程有可能在讀寫時(shí)候阻塞,直到一定的條件滿足。

        比如我們從一個(gè)套接字讀數(shù)據(jù)時(shí),可能緩沖區(qū)里面沒有數(shù)據(jù)可讀(通信的對(duì)方還沒有發(fā)送數(shù)據(jù)過來),這個(gè)時(shí)候我們的讀調(diào)用就會(huì)等待(阻塞)直到有數(shù)據(jù)可讀.如果我們不希望阻塞,我們的一個(gè)選擇是把socket設(shè)置為非阻塞模式來實(shí)現(xiàn);int socketfd;socketfd=socket(AF_INET,SOCK_STREAM,0);fcntl(socketfd,F_SETFL,O_NONBLOCK);通過設(shè)置socket為非阻塞模式,可以實(shí)現(xiàn)“輪循”多個(gè)socket,當(dāng)企圖從一個(gè)沒有數(shù)據(jù)等待處理的非阻塞socket讀取數(shù)據(jù)時(shí),函數(shù)立即返回,但是這種“輪循”會(huì)使CPU處于忙等待方式,降低了性能,select函數(shù)解決了這個(gè)問題;

        5.3、在我們調(diào)用select時(shí)進(jìn)程會(huì)一直阻塞直到以下的一種情況發(fā)生。

        1)有文件可以讀.

        2)有文件可以寫.

        3)超時(shí)所設(shè)置的時(shí)間到;

        5.4、算法如下:

        初始化(socket,bind,listen;

        while(1)

        {設(shè)置監(jiān)聽讀寫文件描述符(FD_*);

        調(diào)用select;

        如果是傾聽套接字就緒,說明一個(gè)新的連接請(qǐng)求建立;

        建立連接(accept);

        加入到監(jiān)聽文件描述符中去;

        否則說明是一個(gè)已經(jīng)連接過的描述符

        進(jìn)行操作(read或者write);}

        多路復(fù)用I/O廣東應(yīng)屆生實(shí)習(xí)報(bào)告網(wǎng)在線編輯整理本文。

        可以解決資源限制的問題。著模型實(shí)際上是將UDP循環(huán)模型用在了TCP上面。這也就帶來了一些問題。如由于服務(wù)器依次處理客戶的請(qǐng)求,所以可能會(huì)導(dǎo)致有的客戶會(huì)等待很久。

        三、I/O模型

        1、網(wǎng)絡(luò)服務(wù)器模型根據(jù)I/O模型的不同實(shí)現(xiàn)而來的。

        2、I/O模型分為同步I/O和異步I/O;同步I/O又包括阻塞I/O、非阻塞I/O、信號(hào)驅(qū)動(dòng)I/O、多路復(fù)用I/O;可根據(jù)不同的要求利用不同的I/O模型實(shí)現(xiàn)不同是網(wǎng)絡(luò)服務(wù)器。

        [實(shí)習(xí)心得]

        通過近幾個(gè)月的實(shí)習(xí),基本上掌握了Linux下C語言網(wǎng)絡(luò)編程的一些算法和技巧,提高了自己的能力。

      【網(wǎng)絡(luò)編程實(shí)習(xí)報(bào)告】相關(guān)文章:

      網(wǎng)絡(luò)編程簡(jiǎn)歷范文07-26

      編程實(shí)習(xí)心得09-29

      網(wǎng)絡(luò)編程專業(yè)個(gè)人簡(jiǎn)歷模板08-09

      網(wǎng)絡(luò)實(shí)習(xí)報(bào)告11-24

      網(wǎng)絡(luò)的實(shí)習(xí)報(bào)告11-28

      網(wǎng)絡(luò)優(yōu)化實(shí)習(xí)報(bào)告10-23

      網(wǎng)絡(luò)編輯實(shí)習(xí)報(bào)告06-09

      網(wǎng)絡(luò)認(rèn)識(shí)實(shí)習(xí)報(bào)告02-15

      關(guān)于網(wǎng)絡(luò)的實(shí)習(xí)報(bào)告02-14

      主站蜘蛛池模板: 最新永久无码AV网址亚洲| 佳木斯市| 久久99一本色道亚洲精品| 国产主播无套内射一区| 国产自精品在线| 国产精品久久婷婷婷婷| 91亚洲国产成人久久精品| 草莓视频中文字幕人妻系列| 太保市| 亚洲国产精品一区二区在线| 日韩精品首页在线观看| 亚洲精品色婷婷一区二区| 亚洲一区二区三区四区三级视频| 中文字幕在线人妻视频| 日本女优中文字幕在线一区| 大香蕉久久精品一区二区字幕| 日产精品一区二区免费| 国产熟女av一区二区三区四季 | 泗洪县| 欧美人与动牲交片免费| 日韩在线中文字幕一区二区三区| 天天插天天干天天操| 久久亚洲国产欧洲精品一| 国产精品亚洲专区一区二区| 中日韩字幕中文字幕一区| 国产农村妇女一区二区三区| 中文字幕第一页亚洲观看| 亚洲综合久久1区2区3区| 亚洲亚洲亚洲亚洲亚洲天堂| 亚洲综合1区2区3区| 日韩中文字幕区一区有砖一区| 盖州市| 亚洲一区二区三区久久综合| 亚洲av成人在线网站| 国产目拍亚洲精品区一区| 在线免费av一区二区| 亚洲成人av一区二区三区| 好爽~又到高潮了毛片视频| 青青青伊人色综合久久亚洲综合| 国产精品乱子伦一区二区三区 | 99久久婷婷这里只有精品|