999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Socket通信過程原理及相關(guān)系統(tǒng)調(diào)用

2015-08-04 15:28:36王進(jìn)文
中國新技術(shù)新產(chǎn)品 2015年7期
關(guān)鍵詞:網(wǎng)絡(luò)通信

王進(jìn)文

摘 要:通過介紹Socket的基本組成結(jié)構(gòu)及其發(fā)揮的作用,論述Socket通信的整個過程并用C語言加以簡要實(shí)現(xiàn),以闡明Socket通信過程原理及相關(guān)系統(tǒng)調(diào)用。

關(guān)鍵詞:Socket;網(wǎng)絡(luò)通信;進(jìn)程通信

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

1 Socket基本組成結(jié)構(gòu)

Socket是相同主機(jī)進(jìn)程之間或者不同主機(jī)進(jìn)程之間進(jìn)行通信的主流手段之一,兩臺計算機(jī)之間的網(wǎng)絡(luò)通信可以通過在各自的系統(tǒng)中創(chuàng)建一個Socket,進(jìn)而利用它來實(shí)現(xiàn)相互之間的通信。

那Socket究竟是什么呢?一個基本的Socket就是由本機(jī)IP,本機(jī)進(jìn)程端口,目的IP,和目的進(jìn)程端口,以及輸入輸出緩沖組成的一個數(shù)據(jù)結(jié)構(gòu)。其中前四個屬性分別用來標(biāo)識本機(jī)信息和目的計算機(jī)的信息,輸入輸出緩沖用來暫存保存通信的數(shù)據(jù)。

2 Socket通信連接步驟

Socket連接建立之前主要進(jìn)行兩項(xiàng)工作,第一項(xiàng)是連接建立前的兩個Socket的初始化工作,第二個是兩臺計算機(jī)通信時的“三路握手”。下面詳細(xì)說明這兩個過程(假設(shè)兩臺通信的計算機(jī)為客戶端-服務(wù)器模型,調(diào)用中用到的參數(shù),請自行查看相關(guān)API):

(1)兩個Socket的初始化。

服務(wù)器端

首先,用C語言通過系統(tǒng)調(diào)用socket()函數(shù)來創(chuàng)建套接口。通過以下程序段便可以建立一個用TCP的Socket:

int listensockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

其次,通過系統(tǒng)調(diào)用int bind ()函數(shù)來初始化Socket中的本地IP地址和本地端口號。通過以下語句,便可以初始化服務(wù)器端的Socket:

bind( listensockfd, (struct sockaddr*) &saServer, sizeof(saServer));

最后,我們通過系統(tǒng)調(diào)用listen()函數(shù)來將已經(jīng)綁定了本機(jī)IP地址和程序端口號的Socket的狀態(tài)由主動(positive)轉(zhuǎn)換為被動(passive)(只有處于被動的Socket才會接受對方的信息)。并調(diào)用accept()函數(shù)來獲取已經(jīng)準(zhǔn)備好的套接字準(zhǔn)備收取數(shù)據(jù)。通過以下程序段,便可以啟動監(jiān)聽Socket,并返回Q1隊(duì)列中和客戶端“三路握手”完成的套接字,如圖1所示。

listen( listensockfd, 5 );

int acceptSocket = accept( listenSocketfd, NULL, NULL );

客戶端

通過Socket系統(tǒng)調(diào)用建立Socket,然后初始化客戶端的IP地址和端口號,并通過connect()函數(shù)將初始化好的IP地址和端口號的數(shù)據(jù)結(jié)構(gòu)綁定在新建的Socket上,與服務(wù)器端不同的是這個數(shù)據(jù)結(jié)構(gòu)是為了初始化客戶端的IP地址和進(jìn)程端口,如圖1所示。

(2)兩臺計算機(jī)通信時的“三路握手”

第一次握手:客戶端調(diào)用connect()函數(shù)將目的地(服務(wù)器端)的IP地址和進(jìn)程端口初始化的同時,給內(nèi)核運(yùn)輸層發(fā)出指令,使其將封裝好(其中包含完整的四元組)的數(shù)據(jù)包(同步包,下面簡稱SYN包),通過更底層的協(xié)議層向目的地(服務(wù)器端)傳送,以發(fā)出請求。

第二次握手:當(dāng)目的地(服務(wù)器端)收到客戶端發(fā)送的SYN包時,如果請求可以通過,服務(wù)器端也通過運(yùn)輸層封裝好一個包含通過請求的SYN+ACK包,否則封裝一個拒絕請求的SYN+NACK包發(fā)送給客戶端,于此同時,服務(wù)器內(nèi)核自動創(chuàng)建一個Socket,并將已將創(chuàng)建好的監(jiān)聽套接口的本地IP地址和進(jìn)程端口拷貝到新創(chuàng)建的Socket中的本地IP地址和進(jìn)程端口中,將第一次握手過程中的SYN包中的客戶端的IP地址和端口號拷貝在新創(chuàng)建的Socket中的目的地IP地址和端口號中,然后將新創(chuàng)建的Socket放入監(jiān)聽Socket中的Q0隊(duì)列(用于放置內(nèi)核為服務(wù)器和不同客戶端通信創(chuàng)建的未完成“三路握手”Socket)中。

第三次握手:當(dāng)客戶端收到服務(wù)器端回應(yīng)的SYN+ACK包時,客戶端需要再返回給服務(wù)器一個SYN包表示已經(jīng)收到SYN+ACK包,與此同時,服務(wù)器將剛才放入Q0隊(duì)列的Socket放入監(jiān)聽套接口的Q1隊(duì)列中(用于放置內(nèi)核為服務(wù)器和不同客戶端通信創(chuàng)建的已經(jīng)完成“三路握手”Socket),而客戶端通過系統(tǒng)調(diào)用accept()正是獲取的Q1隊(duì)列中的套接字。如圖2所示。

3 通過socke進(jìn)行通信

服務(wù)器端通過系統(tǒng)調(diào)用recv()進(jìn)行數(shù)據(jù)的獲取,客戶端可以通過調(diào)用send()進(jìn)行數(shù)據(jù)的發(fā)送。

以下便是整個Socket通信的流程圖,如圖2所示。

參考文獻(xiàn)

[1] Jesse Storimer. TCP Sockets編程[M].北京:人民郵電出版社,2013.

猜你喜歡
網(wǎng)絡(luò)通信
基于NoC架構(gòu)的網(wǎng)絡(luò)通信抗干擾方法研究
海上軍用網(wǎng)絡(luò)通信的安全控制技術(shù)
基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計
電子制作(2019年15期)2019-08-27 01:11:48
基于CAN總線的網(wǎng)絡(luò)通信信道的建模與研究
移動計算機(jī)網(wǎng)絡(luò)通信技術(shù)研究
電子測試(2018年14期)2018-09-26 06:05:06
計算機(jī)網(wǎng)絡(luò)通信常見問題與技術(shù)發(fā)展研究
電子制作(2018年10期)2018-08-04 03:24:46
網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計
電子制作(2018年1期)2018-04-04 01:48:30
談計算機(jī)網(wǎng)絡(luò)通信常見問題及技術(shù)發(fā)展
電子制作(2017年17期)2017-12-18 06:41:06
汽車檢測控制系統(tǒng)網(wǎng)絡(luò)通信技術(shù)分析
電子測試(2017年23期)2017-04-04 05:07:12
主站蜘蛛池模板: 91口爆吞精国产对白第三集| 日韩第九页| 幺女国产一级毛片| 白浆视频在线观看| 久久久久中文字幕精品视频| 日韩高清无码免费| 91精品免费高清在线| 婷婷伊人久久| 日韩第一页在线| 久久成人免费| 精品少妇三级亚洲| 欧美色视频网站| 亚洲国产精品国自产拍A| 国产毛片片精品天天看视频| 国产另类视频| 四虎亚洲精品| 中文字幕精品一区二区三区视频| 国产va在线观看| 日韩大乳视频中文字幕 | 国内精品视频| 亚洲无线视频| 一本大道东京热无码av| 久久亚洲国产视频| 国产成人精品优优av| 午夜视频在线观看免费网站 | 欧美成人精品高清在线下载| 综合五月天网| 亚洲无码91视频| 亚洲欧美精品在线| 国产又色又刺激高潮免费看| 国产成人免费| 国产99热| 国产精品亚洲一区二区在线观看| 日韩第九页| 日韩二区三区无| 亚洲天堂网在线观看视频| 2020国产在线视精品在| 色综合天天娱乐综合网| 欧美区一区二区三| 在线欧美一区| 乱人伦99久久| 亚洲男人天堂久久| 久久99精品久久久久久不卡| 日韩亚洲综合在线| a在线亚洲男人的天堂试看| 婷婷色丁香综合激情| 国内精品一区二区在线观看| 91久久偷偷做嫩草影院免费看 | 日日拍夜夜嗷嗷叫国产| 亚洲成A人V欧美综合| 人妻中文久热无码丝袜| 欧美激情伊人| 夜夜高潮夜夜爽国产伦精品| 91精品国产福利| 尤物成AV人片在线观看| 第九色区aⅴ天堂久久香| 国产视频大全| 九九香蕉视频| 毛片网站在线看| 免费黄色国产视频| www.91在线播放| 国产高清毛片| 中文无码精品a∨在线观看| 亚洲中文字幕精品| 国产乱人乱偷精品视频a人人澡| 精品三级在线| 在线国产毛片| 成人一级免费视频| 91精品国产麻豆国产自产在线| 婷婷亚洲视频| 日本AⅤ精品一区二区三区日| 99在线观看精品视频| 国产免费看久久久| 香蕉久人久人青草青草| 国产精品污视频| 国产精品永久不卡免费视频| 日韩不卡免费视频| 国产一二三区视频| 欧类av怡春院| 免费中文字幕一级毛片| 狠狠色婷婷丁香综合久久韩国 | 伊人久久大线影院首页|