国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Socket的網(wǎng)絡(luò)編程技術(shù)及其實(shí)現(xiàn)

2014-07-24 08:47許文勇
無線互聯(lián)科技 2014年5期
關(guān)鍵詞:通信

許文勇

摘 要:科學(xué)技術(shù)的不斷發(fā)展推動(dòng)了網(wǎng)絡(luò)信息化時(shí)代的發(fā)展,隨著計(jì)算機(jī)技術(shù)不斷的發(fā)展,各種網(wǎng)絡(luò)編程技術(shù)日新月異。本文介紹了Socket網(wǎng)絡(luò)編程的基本概念,以及實(shí)現(xiàn)Socket編程的基本原理,通給出一個(gè)基于TCP協(xié)議實(shí)例,來說明實(shí)現(xiàn)網(wǎng)絡(luò)編程。

關(guān)鍵詞:Socket;網(wǎng)絡(luò)編程技術(shù);通信

隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)編程技術(shù)在人們的日常生活中的應(yīng)用也越來越普遍了通過網(wǎng)絡(luò)使用通信協(xié)議實(shí)現(xiàn)進(jìn)程間的通信,TCP/IP就是網(wǎng)絡(luò)上常用的協(xié)議之一,在進(jìn)行網(wǎng)絡(luò)編程程序設(shè)計(jì)時(shí),TCP/IP協(xié)議的核心內(nèi)容受到操作系統(tǒng)的控制。網(wǎng)絡(luò)編程程序必須通過協(xié)議來實(shí)現(xiàn)自己的功能,靠系統(tǒng)提供的 TCP/IP協(xié)議來完成編程程序。

1 Socket網(wǎng)絡(luò)編程的基本概念

Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層,它是一組接口。在設(shè)計(jì)模式中,Socket其實(shí)就是一個(gè)門面模式,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket[1]接口后面,對(duì)用戶來說,一組簡(jiǎn)單的接口就是全部,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議。Socket可以看成在兩個(gè)程序進(jìn)行通訊連接中的一個(gè)端點(diǎn),是連接應(yīng)用程序和網(wǎng)絡(luò)驅(qū)動(dòng)程序的橋梁,Socket在應(yīng)用程序中創(chuàng)建,通過綁定與網(wǎng)絡(luò)驅(qū)動(dòng)建立關(guān)系。此后,應(yīng)用程序送給Socket的數(shù)據(jù),由Socket交網(wǎng)絡(luò)驅(qū)動(dòng)程序向網(wǎng)絡(luò)上發(fā)送出去。計(jì)算機(jī)從網(wǎng)絡(luò)上收到與該Socket綁定IP地址和端口號(hào)相關(guān)的數(shù)據(jù)后,由網(wǎng)絡(luò)驅(qū)動(dòng)程序交給Socket,應(yīng)用程序便可從該Socket中提取接收到得數(shù)據(jù),網(wǎng)絡(luò)應(yīng)用程序就是這樣通過Socket進(jìn)行數(shù)據(jù)的發(fā)送與接收的。

1.1 關(guān)于地址

一個(gè)程序要想與另一個(gè)程序通信,就要給計(jì)算機(jī)提供足夠的信息,使其能找到另一個(gè)程序。在TCP/IP協(xié)議中,有兩部分信息用來定位一個(gè)指定的程序,互聯(lián)網(wǎng)地址(Internet address)和端口號(hào)(port number)。其中互聯(lián)網(wǎng)地址由IP協(xié)議使用,而附加的端口號(hào)地址信息由傳輸協(xié)議使用(TCP/IP協(xié)議)解析。

1.2 套接字

Socket(套接字)是一中比較抽象的東西,利用編程程序來接受數(shù)據(jù)[2]。計(jì)算機(jī)網(wǎng)絡(luò)編程程序根據(jù)TCP/IP協(xié)議中系統(tǒng)提供的程序來完成套接字的通訊。每一臺(tái)計(jì)算機(jī)都有一個(gè)標(biāo)識(shí)來識(shí)別計(jì)算機(jī)的應(yīng)用程序。如果一個(gè)端口確定了一臺(tái)主機(jī)上的一個(gè)套接字,那么主機(jī)中的多個(gè)程序可以對(duì)同一個(gè)套接字進(jìn)行訪問。在實(shí)際應(yīng)用中,訪問相同的套接字的不同程序一般屬于同一個(gè)應(yīng)用。Socket套接口有3種類型。一種SOCK_STREAM流式套接口,面向連接的,可靠地,TCP。第二種是SOCK_DRAM數(shù)據(jù)報(bào)套接口,面向無連接,不可靠,UDP。第三種是原始套接口,主要用于新的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的測(cè)試。

2 Socket編程主要流程

編程分為服務(wù)器端和客戶端兩個(gè)方面。在進(jìn)行Socket編程的時(shí)候,首先創(chuàng)建服務(wù)器套接字,服務(wù)器端通過Socket()建立一個(gè)套接字,然后通過bind()將創(chuàng)建的套接字綁接到要聯(lián)系的IP地址和端口上,調(diào)用listen()監(jiān)聽鏈接請(qǐng)求,客戶端通過接受指令,通過Socket()建立一個(gè)套接字,利用界面上的“connect”按鈕,調(diào)用Connect()像服務(wù)器請(qǐng)求連接。在客戶端完成Connect指令后,服務(wù)器端調(diào)用[3]accept()接受請(qǐng)求并返回新的套接字,通過返回的套接字與客戶端進(jìn)行通信,當(dāng)在客戶端點(diǎn)擊Send()指令時(shí),服務(wù)器端就得調(diào)用receive()指令接受信息。在完成通信交流后,服務(wù)器端與客戶端調(diào)用Close()關(guān)閉Socket(),寵兒終端連接。例如Daytime服務(wù)器,如下圖所示。

3 Socket網(wǎng)絡(luò)編程技術(shù)實(shí)現(xiàn)

public static synchronized void setSocketFactory(SocketImplFactory fac) throws IOException 這個(gè)方法設(shè)置系統(tǒng)(system)的服務(wù)器SocketImplFactory,這是用于創(chuàng)建

ServerSocket對(duì)象的類庫(kù)。它與創(chuàng)建Socket對(duì)象的類庫(kù)有所不同,盡管語法是相似的??梢杂靡粋€(gè)庫(kù)創(chuàng)建Socket對(duì)象,用另一個(gè)庫(kù)創(chuàng)建ServerSocket對(duì)象。但是在程序也可以只設(shè)置這個(gè)類庫(kù)一次。試圖第二次設(shè)置SocketImplFactory時(shí)會(huì)觸發(fā)一個(gè)SocketException。

protected final void implAccept(Socket s) throws IOException ServerSocket的子類使用這個(gè)方法實(shí)現(xiàn)accept()??梢园盐催B接的Socket對(duì)象傳遞到implAccept()(這樣做同樣要求實(shí)現(xiàn)Socket子類,因?yàn)闃?biāo)準(zhǔn)的java.net.Socket類沒有提供創(chuàng)建未連接套接字的工具)。當(dāng)此方法返回時(shí),Socket變量s就連接到客戶機(jī)上。

4 結(jié)束語

Socket網(wǎng)絡(luò)編程技術(shù)運(yùn)用為人們通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行交流提供了便利。隨著科學(xué)技術(shù)的發(fā)展,Socket網(wǎng)絡(luò)編程技術(shù)也要與時(shí)俱進(jìn),不斷創(chuàng)新,為計(jì)算機(jī)網(wǎng)絡(luò)信息化發(fā)展提供動(dòng)力。

[參考文獻(xiàn)]

[1]周炎濤,李立明.TCP/IP協(xié)議下網(wǎng)絡(luò)編程技術(shù)及其實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2011,09(03):33-34.

[2]周小松,朱雄軍.基于UDP協(xié)議的Socket網(wǎng)絡(luò)編程模式的實(shí)現(xiàn)[J].武漢職業(yè)技術(shù)學(xué)院學(xué)報(bào)(綜合版),2011,05(01):36-38.

[3]程詠喜,蔣珉.基于TCP/IP協(xié)議的WinSock網(wǎng)絡(luò)編程及應(yīng)用[J].計(jì)算機(jī)時(shí)代,2012,06(07):12-14.endprint

猜你喜歡
通信
基于數(shù)字化變電站SV報(bào)文通信可靠性問題研究
鐵路光纜運(yùn)營(yíng)維護(hù)方式研究
電子對(duì)抗中通信技術(shù)研究
多媒體融合通信與平臺(tái)通信優(yōu)化方案研究
基于“一級(jí)調(diào)度、兩級(jí)運(yùn)維”的通信管理體系研究①
簡(jiǎn)述計(jì)算機(jī)通信網(wǎng)絡(luò)安全與防護(hù)策略
Android環(huán)境下主UI線程與子線程通信機(jī)制研究
無線自組網(wǎng)在野戰(zhàn)防空通信系統(tǒng)中的應(yīng)用
對(duì)數(shù)字微波通信技術(shù)的研究
仁寿县| 五河县| 沧源| 平山县| 石林| 宁明县| 奉贤区| 临潭县| 达州市| 大安市| 新丰县| 辽宁省| 金溪县| 临颍县| 临沧市| 通州区| 阿荣旗| 平阴县| 涪陵区| 桃源县| 隆安县| 泸州市| 长葛市| 庐江县| 团风县| 南汇区| 沧源| 陆丰市| 启东市| 大厂| 保康县| 体育| 奉化市| 湖北省| 巩留县| 从化市| 于田县| 东辽县| 徐州市| 乌拉特中旗| 舒城县|