宋澤瑞
【摘要】 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)在當(dāng)下是一項(xiàng)主流且仍具有極大潛力的技術(shù),SOCKET是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的一個(gè)術(shù)語,指的是端口號(hào),它的本質(zhì)指的是編程的接口,TCP/IP的使用需要程序員通過接口來開發(fā)使用,也就是SOCKET的編程接口。在應(yīng)用到BSD Unix的進(jìn)程通信機(jī)制之上也作為“插座”來使用,能夠?qū)P地址和端口視為通信鏈的句柄,能夠溝通多個(gè)虛擬機(jī)或多個(gè)計(jì)算機(jī)間的通信。
【關(guān)鍵詞】 SOCKET 編程 網(wǎng)絡(luò)通信
計(jì)算機(jī)網(wǎng)絡(luò)時(shí)代的到來推動(dòng)了很多產(chǎn)業(yè)的發(fā)展升級(jí),將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)應(yīng)用到各行各業(yè)中是當(dāng)前的發(fā)展潮流。計(jì)算機(jī)的網(wǎng)絡(luò)具有靈活性、開放性,網(wǎng)絡(luò)本身不受企業(yè)或廠商的控制,所以在許多行業(yè)都能夠發(fā)揮其價(jià)值。網(wǎng)絡(luò)編程是應(yīng)用網(wǎng)絡(luò)發(fā)揮其價(jià)值的一個(gè)重要方式,而掌握SOCKET網(wǎng)絡(luò)編程技術(shù)能夠?qū)崿F(xiàn)網(wǎng)絡(luò)通信的效能。本文就BSD Unix網(wǎng)絡(luò)版在套接字接口之上的網(wǎng)絡(luò)通信過程展開了分析討論。
一、TCP/IP協(xié)議在分層以及應(yīng)用程序編程接口
基于TCP/IP的網(wǎng)絡(luò)能夠?yàn)閼?yīng)用程序供應(yīng)兩個(gè)常規(guī)編程接口,分別為套接字接口和傳輸層接口,套接字接口便是本文所重點(diǎn)討論的SOCKET,SOCKET是在BSD Unix系統(tǒng)的基礎(chǔ)上開發(fā)并普及開的,傳輸層接口(TLI)是AT&T公司開發(fā)出的,SOCKET API具有普遍的通用性,能夠基于多種傳輸協(xié)議運(yùn)行,當(dāng)前已經(jīng)發(fā)展成了網(wǎng)絡(luò)編程的既定事實(shí)標(biāo)準(zhǔn),所以本文就通用性只討論套接字接口編程。
二、TCP/IP提供的服務(wù)以及編程模式
套接字實(shí)際上是IP地址在附上端口編號(hào)后,IP地址的標(biāo)識(shí)網(wǎng)絡(luò)中單一主機(jī),端口編號(hào)的標(biāo)識(shí)能夠在主機(jī)之上展開工作的一個(gè)進(jìn)程,能夠系統(tǒng)化展開網(wǎng)間通信則需要建立在兩個(gè)進(jìn)程中,達(dá)成這一條件還需要共用相同的高層協(xié)議。
OSI術(shù)語里把網(wǎng)絡(luò)層下面的各分層視為通信子網(wǎng),為實(shí)現(xiàn)網(wǎng)間的進(jìn)程通信,在此基礎(chǔ)上還要做到控制差錯(cuò)、控制流量、管理各項(xiàng)連接、排序組合數(shù)據(jù)等功能,這就需要準(zhǔn)備兩種服務(wù)方式,分別為無連接的服務(wù)和面向連接(虛電路)。
TCP/IP網(wǎng)絡(luò)應(yīng)用中,進(jìn)行通信工作的兩個(gè)進(jìn)程之間會(huì)互相產(chǎn)生作用和聯(lián)系,為用戶供應(yīng)所需求的服務(wù),然后將數(shù)據(jù)回復(fù)到客戶的結(jié)果。
三、BSD Unix套接字接口網(wǎng)間進(jìn)程的通信過程
SOCKET在TCP/IP基礎(chǔ)上所能夠提供的套接字類型主要有一下三種:
3.1流式套接字(SOCK STREAM)
流式套接字所提供的服務(wù)在連接上的應(yīng)用比較多,能夠?yàn)橛脩籼峁?zhǔn)確可靠的數(shù)據(jù)傳輸服務(wù),并且保證了數(shù)據(jù)避免出錯(cuò),同時(shí)還也能夠避免多次重復(fù)發(fā)送,數(shù)據(jù)在傳輸過程中仍保持著隊(duì)列順序,對(duì)于數(shù)據(jù)還有準(zhǔn)確的流量控制,防止了數(shù)據(jù)流超出限制值的出現(xiàn)。
3.2數(shù)據(jù)報(bào)式套接字(SOCK DGRAM)
數(shù)據(jù)報(bào)式套接字能夠?yàn)橛脩籼峁o連接服務(wù),獨(dú)立的服務(wù)包傳送出,對(duì)于錯(cuò)誤沒有保證,數(shù)據(jù)在傳輸?shù)倪^程中可能會(huì)丟失或出現(xiàn)重復(fù)發(fā)送的現(xiàn)象,另一端接受到的數(shù)據(jù)也是雜亂無序的,數(shù)據(jù)長度有限制:最大為64KB,網(wǎng)絡(luò)文件系統(tǒng)中(NFS)使用的便是數(shù)據(jù)報(bào)式套接字。
3.3原始式套接字(SOCK RAW)
原始式套接字的接口要求能夠?qū)崿F(xiàn)對(duì)底層協(xié)議間的信息傳輸,比如IP、ICMP的直接訪問,這種訪問常常用在對(duì)新的協(xié)議實(shí)現(xiàn)情況以及訪問服務(wù)配置中的新設(shè)備的檢驗(yàn)工作中,通常是不會(huì)為普通用戶提供的,所以本文并未展開深入研究。
四、總結(jié)
本文針對(duì)以SOCKET在編程上的應(yīng)用展開的了分析討論,并對(duì)其在網(wǎng)絡(luò)通信功能的應(yīng)用進(jìn)行了研究。網(wǎng)絡(luò)編程是應(yīng)用網(wǎng)絡(luò)發(fā)揮其價(jià)值的一個(gè)重要方式,而掌握SOCKET網(wǎng)絡(luò)編程技術(shù)能夠?qū)崿F(xiàn)網(wǎng)絡(luò)通信的效能。本文就BSD Unix網(wǎng)絡(luò)版在套接字接口之上的網(wǎng)絡(luò)通信過程展開的研究仍不全面,需要更多的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)人員投入,深入的研究并將其應(yīng)用于網(wǎng)絡(luò)通信領(lǐng)域。
參 考 文 獻(xiàn)
[1]歐軍,吳清秀,裴云,張洪. 基于socket的網(wǎng)絡(luò)通信技術(shù)研究[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2011,07:19-21.
[2]王遠(yuǎn)洋,周淵平,郭煥麗. Linux下基于socket多線程并發(fā)通信的實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2009,15:70-72.
[3]王志偉,沈杰峰,郭啟峰,唐俊. 基于Socket的GPRS遠(yuǎn)程數(shù)據(jù)采集方法[J]. 西華大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,01:37-39+93+3.
[4]張?jiān)蕜?,劉常春,劉偉,何付? 基于Socket和多線程的遠(yuǎn)程監(jiān)控系統(tǒng)[J]. 控制工程,2006,02:175-177.
[5]李現(xiàn)凡,高建榮. 基于SOCKET編程接口的局域網(wǎng)即時(shí)通信系統(tǒng)的開發(fā)實(shí)現(xiàn)[J]. 常州輕工職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006,04:14-18.