首頁 > 文章中心 > 正文

      LINUX系統(tǒng)網(wǎng)絡(luò)通信探索

      前言:本站為你精心整理了LINUX系統(tǒng)網(wǎng)絡(luò)通信探索范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

      LINUX系統(tǒng)網(wǎng)絡(luò)通信探索

      linux網(wǎng)絡(luò)通信設(shè)計(jì)

      下面我將對(duì)LINUX平臺(tái)下網(wǎng)絡(luò)通信設(shè)計(jì)的工作流程、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收三個(gè)模塊進(jìn)行詳細(xì)的介紹。

      1工作流程

      首先調(diào)用SOCKET函數(shù)創(chuàng)建一個(gè)用于通信的套接字,然后給已經(jīng)創(chuàng)建的套接字(SOCKET)綁定本地地址/端口號(hào)(Bind()),成功之后就在相應(yīng)的SOCKET上監(jiān)聽(Listen())。當(dāng)Accept()函數(shù)捕捉到一個(gè)連接服務(wù)(Connect())請(qǐng)求時(shí),接受并生成一個(gè)新的SOCKET,并通過這個(gè)新的SOCKET與客戶端連接,用Read()/Write()或相關(guān)函數(shù)讀取和發(fā)送數(shù)據(jù),傳輸完畢時(shí),用Close()關(guān)閉所有進(jìn)程,結(jié)束這次通信。客戶端程序設(shè)計(jì)流程:客戶端也先要?jiǎng)?chuàng)建一個(gè)SOCKET,將該SOCKET與本地地址/端口號(hào)綁定,還需要指定服務(wù)器端的地址與端口號(hào),隨后向服務(wù)器端發(fā)出連接(Connect())請(qǐng)求,請(qǐng)求被服務(wù)器端接受后,用函數(shù)進(jìn)行了數(shù)據(jù)的接收與發(fā)送,傳輸完畢后,用Close()關(guān)閉套接口,通信結(jié)束。

      2數(shù)據(jù)發(fā)送模塊

      從應(yīng)用層到物理層發(fā)送數(shù)據(jù)時(shí),函數(shù)調(diào)用順序如下:send>sys—send>sys—sendto>sock—sendmsg>inet—sendmsg>tcp—sendmsg>tcp—send—skb>tcp_transmit>ip—queue—xmit>ip—queue—xmit2>ip—output>ip—finish—output>ip—finish—output2>neigh_resolve_output>dev_queue_xmit>ei—start_xmit網(wǎng)絡(luò)連接創(chuàng)建好以后,就可以進(jìn)行發(fā)送數(shù)據(jù)了。

      3數(shù)據(jù)接收模塊

      當(dāng)網(wǎng)絡(luò)上的數(shù)據(jù)到達(dá)接收計(jì)算機(jī)時(shí),網(wǎng)卡控制器產(chǎn)生中斷,調(diào)用該中斷的中斷處理程序ei—interrupt()。在這個(gè)函數(shù)中主要通過判斷中斷狀態(tài)寄存器(ISR)的內(nèi)容,調(diào)用相應(yīng)的處理程序來接收數(shù)據(jù)。如果中斷狀態(tài)寄存器顯示接收到數(shù)據(jù)或者接收到有錯(cuò)誤的數(shù)據(jù)時(shí),就調(diào)用ei—receive()函數(shù)進(jìn)行數(shù)據(jù)的接收。在ei—receive()函數(shù)中要正確設(shè)定邊界指針寄存器(BNRY)和當(dāng)前頁寄存器(CPR)的內(nèi)容,當(dāng)BNRY或者CPR等于頁停止寄存器(PSTOP)時(shí),把它們的內(nèi)容設(shè)置成頁開始寄存器(PSTART).當(dāng)CPR=BNRY時(shí),表示緩沖區(qū)全部被存滿,數(shù)據(jù)沒有被用戶讀走,這時(shí)網(wǎng)卡將停止往內(nèi)存寫數(shù)據(jù),新收到的數(shù)據(jù)包將被丟棄不要,而不覆蓋舊的數(shù)據(jù);當(dāng)CPR=BNRY+1時(shí),表示網(wǎng)卡的接收緩沖區(qū)里沒有數(shù)據(jù),用戶通過這個(gè)判斷知道沒有包可以讀,當(dāng)CPR!=BNRY+1時(shí),表示接收到新的數(shù)據(jù)包。

      結(jié)束語

      LINUX操作系統(tǒng)在網(wǎng)絡(luò)應(yīng)用方面具有很強(qiáng)的開發(fā)潛力,同時(shí)LINUX也是可靠性、安全性非常高的系統(tǒng),因此在基于LINUX平臺(tái)借助于SOCKET端口進(jìn)行網(wǎng)絡(luò)通信的研究具有廣泛的應(yīng)用價(jià)值和前景。

      作者:丁思強(qiáng)單位:黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院

      文檔上傳者
      久久精品亚洲一区二区三区浴池| 久久亚洲国产精品一区二区| 久久亚洲精品无码AV红樱桃| 亚洲国产精品无码AAA片| 亚洲人成无码网WWW| 内射无码专区久久亚洲| 日韩欧美亚洲国产精品字幕久久久 | 亚洲v高清理论电影| 亚洲Av熟妇高潮30p| 久久精品国产亚洲AV果冻传媒| 亚洲av无码专区在线播放| 亚洲成在人线av| 亚洲免费视频网站| 亚洲精彩视频在线观看| 亚洲精品456在线播放| 亚洲国产精品白丝在线观看| 亚洲国产精品线观看不卡| 国产精品亚洲片夜色在线| 亚洲日韩一中文字暮| 亚洲av中文无码字幕色不卡| 色婷婷六月亚洲综合香蕉| 亚洲国产一级在线观看| 亚洲一级片内射网站在线观看| 国产亚洲成人在线播放va| 国产亚洲精品精华液| 久热综合在线亚洲精品| 67pao强力打造67194在线午夜亚洲 | 亚洲乱色熟女一区二区三区蜜臀| 亚洲熟女综合一区二区三区| 亚洲av无一区二区三区| 亚洲国产天堂久久综合| 在线日韩日本国产亚洲| 久久精品国产精品亚洲蜜月| 91情国产l精品国产亚洲区| 亚洲午夜国产精品无卡| 亚洲色成人网站WWW永久四虎| 国产成人综合亚洲一区| 中文字幕精品亚洲无线码一区 | 成人亚洲性情网站WWW在线观看| 精品亚洲永久免费精品| 亚洲精品国产情侣av在线|