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

Socket通信過程原理及相關系統調用

2015-08-04 15:28:36王進文
中國新技術新產品 2015年7期
關鍵詞:網絡通信

王進文

摘 要:通過介紹Socket的基本組成結構及其發揮的作用,論述Socket通信的整個過程并用C語言加以簡要實現,以闡明Socket通信過程原理及相關系統調用。

關鍵詞:Socket;網絡通信;進程通信

中圖分類號:TP311 文獻標識碼:A

1 Socket基本組成結構

Socket是相同主機進程之間或者不同主機進程之間進行通信的主流手段之一,兩臺計算機之間的網絡通信可以通過在各自的系統中創建一個Socket,進而利用它來實現相互之間的通信。

那Socket究竟是什么呢?一個基本的Socket就是由本機IP,本機進程端口,目的IP,和目的進程端口,以及輸入輸出緩沖組成的一個數據結構。其中前四個屬性分別用來標識本機信息和目的計算機的信息,輸入輸出緩沖用來暫存保存通信的數據。

2 Socket通信連接步驟

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

(1)兩個Socket的初始化。

服務器端

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

int listensockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

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

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

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

listen( listensockfd, 5 );

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

客戶端

通過Socket系統調用建立Socket,然后初始化客戶端的IP地址和端口號,并通過connect()函數將初始化好的IP地址和端口號的數據結構綁定在新建的Socket上,與服務器端不同的是這個數據結構是為了初始化客戶端的IP地址和進程端口,如圖1所示。

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

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

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

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

3 通過socke進行通信

服務器端通過系統調用recv()進行數據的獲取,客戶端可以通過調用send()進行數據的發送。

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

參考文獻

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

猜你喜歡
網絡通信
基于NoC架構的網絡通信抗干擾方法研究
海上軍用網絡通信的安全控制技術
基于網絡通信的智能照明系統設計
電子制作(2019年15期)2019-08-27 01:11:48
基于CAN總線的網絡通信信道的建模與研究
測控技術(2018年7期)2018-12-09 08:57:54
移動計算機網絡通信技術研究
電子測試(2018年14期)2018-09-26 06:05:06
計算機網絡通信常見問題與技術發展研究
電子制作(2018年10期)2018-08-04 03:24:46
網絡通信中信息隱藏技術的應用
基于網絡通信的校園智能音箱設計
電子制作(2018年1期)2018-04-04 01:48:30
談計算機網絡通信常見問題及技術發展
電子制作(2017年17期)2017-12-18 06:41:06
汽車檢測控制系統網絡通信技術分析
電子測試(2017年23期)2017-04-04 05:07:12
主站蜘蛛池模板: 无码啪啪精品天堂浪潮av | 亚洲国产精品久久久久秋霞影院| 精品久久高清| 欧美成人一区午夜福利在线| 欧日韩在线不卡视频| 亚洲欧美人成人让影院| 欧美色伊人| 亚洲综合在线网| 超碰色了色| 国产成人精品高清不卡在线| 国产视频你懂得| 国产无人区一区二区三区| 无码精油按摩潮喷在线播放| 青草视频网站在线观看| 日本欧美视频在线观看| 无码一区18禁| 亚洲第一成人在线| 午夜爽爽视频| 亚洲欧美不卡| 嫩草国产在线| 亚洲第一香蕉视频| 欧美在线中文字幕| 日本人又色又爽的视频| 日韩少妇激情一区二区| 女人av社区男人的天堂| 国产精品久久久久久久久久久久| 欧美日本在线播放| 国产在线自乱拍播放| 日韩在线影院| 综合色天天| 视频二区亚洲精品| 国产丝袜一区二区三区视频免下载| 香蕉视频在线观看www| 国产美女在线免费观看| www.99在线观看| 99国产精品免费观看视频| 在线永久免费观看的毛片| 在线观看免费人成视频色快速| 亚洲男人的天堂网| 免费在线看黄网址| 波多野结衣亚洲一区| 高清免费毛片| 51国产偷自视频区视频手机观看| 亚洲精品图区| 免费一级毛片在线播放傲雪网| 午夜国产大片免费观看| 中文字幕 日韩 欧美| 国产免费人成视频网| 久草视频精品| 国产麻豆精品在线观看| 又大又硬又爽免费视频| 国内老司机精品视频在线播出| 亚洲无码熟妇人妻AV在线| 日韩毛片视频| 久久狠狠色噜噜狠狠狠狠97视色 | 大学生久久香蕉国产线观看| 五月激情婷婷综合| 精品人妻无码区在线视频| 亚洲国产成人麻豆精品| 无码福利日韩神码福利片| 精品无码日韩国产不卡av| 亚洲一道AV无码午夜福利| 国产亚洲精品91| 毛片久久久| 91精品伊人久久大香线蕉| 有专无码视频| 国产理论一区| 亚洲无码免费黄色网址| 精品一区二区三区波多野结衣 | 国产精鲁鲁网在线视频| 91人妻在线视频| 激情爆乳一区二区| 华人在线亚洲欧美精品| 国产午夜福利片在线观看| 高潮爽到爆的喷水女主播视频| 最新国产成人剧情在线播放| 69综合网| 中文字幕色在线| 久久99这里精品8国产| 欧美三级视频网站| 久久精品人妻中文视频| 国产导航在线|