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

淺談Java程序設(shè)計(jì)的網(wǎng)絡(luò)編程

2012-04-12 00:00:00孫洪鵬
消費(fèi)電子 2012年9期

摘要:網(wǎng)絡(luò)編程技術(shù)是現(xiàn)在比較流行的軟件研發(fā)技術(shù),廣泛應(yīng)用于如斗地主,五步棋等游戲以及即時(shí)通訊之中。本文介紹在Java語(yǔ)言中如何進(jìn)行TCP和UDP格式的網(wǎng)絡(luò)編程,通過(guò)簡(jiǎn)單的實(shí)例演示網(wǎng)絡(luò)編程的基本方法,旨在對(duì)網(wǎng)絡(luò)編程愛(ài)好者起到拋磚引玉的作用。

關(guān)鍵詞:數(shù)據(jù)包;TCP協(xié)議;UDP協(xié)議

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2012) 10-0098-01

計(jì)算機(jī)網(wǎng)絡(luò)是計(jì)算機(jī)技術(shù)和通信技術(shù)緊密結(jié)合的產(chǎn)物,對(duì)如今社會(huì)發(fā)展有著深遠(yuǎn)的影響。網(wǎng)絡(luò)編程的目的就是指直接或間接地通過(guò)網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通訊。網(wǎng)絡(luò)編程中有兩個(gè)主要問(wèn)題:一個(gè)是如何準(zhǔn)確地定位網(wǎng)絡(luò)上一臺(tái)或多臺(tái)主機(jī),另一個(gè)就是找到主機(jī)后如何可靠高效地進(jìn)行數(shù)據(jù)傳輸。在TCP/IP協(xié)議中IP層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位,數(shù)據(jù)傳輸?shù)穆酚桑蒊P地址可以唯一地確定Internet上的一臺(tái)主機(jī)。而TCP層則提供面向應(yīng)用的可靠的或非可靠的數(shù)據(jù)傳輸機(jī)制,這是網(wǎng)絡(luò)編程的主要對(duì)象,一般不需要關(guān)心IP層是如何處理數(shù)據(jù)的。

一、TCP和UDP協(xié)議

TCP和UDP協(xié)議屬于傳輸層協(xié)議。其中TCP提供IP環(huán)境下的數(shù)據(jù)可靠傳輸,它提供的服務(wù)包括數(shù)據(jù)流傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。通過(guò)面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。通俗說(shuō),它是事先為所發(fā)送的數(shù)據(jù)開(kāi)辟出連接好的通道,然后再進(jìn)行數(shù)據(jù)發(fā)送;而UDP則不為IP提供可靠性、流控或差錯(cuò)恢復(fù)功能。一般來(lái)說(shuō),TCP對(duì)應(yīng)的是可靠性要求高的應(yīng)用,而UDP對(duì)應(yīng)的則是可靠性要求低、傳輸經(jīng)濟(jì)的應(yīng)用。TCP支持的應(yīng)用協(xié)議主要有:Telnet、FTP、SMTP等;UDP支持的應(yīng)用層協(xié)議主要有:NFS、SNMP、DNS、TFTP等。

二、網(wǎng)絡(luò)通信中Java的網(wǎng)絡(luò)類和接口

Java中有關(guān)網(wǎng)絡(luò)方面的功能都定義在java.net程序包中。Java所提供的網(wǎng)絡(luò)功能可大致分為三大類:

(一)URL和URLConnection:使用Socket類進(jìn)行網(wǎng)絡(luò)編程相當(dāng)麻煩。對(duì)已經(jīng)存在的協(xié)議,程序員應(yīng)當(dāng)了解它的每一段代表的含義,改而使用URL類可以很大程度上免去這些麻煩。

1.URL類

URL是類URL表示統(tǒng)一資源定位器,即指向網(wǎng)上某處資源的指針。一個(gè)URL包括協(xié)議名和主機(jī)名,有些還包括特定的端口號(hào)。

2.URLConnection類

通過(guò)URL的方法openStream(),只能從網(wǎng)絡(luò)上讀取數(shù)據(jù),如果同時(shí)還想輸出數(shù)據(jù),例如向服務(wù)器的CGI程序發(fā)送一些數(shù)據(jù),則必須先與URL建立連接,然后才能對(duì)其進(jìn)行讀寫(xiě),這時(shí)就要用到URLConnection類了。CGI是公共網(wǎng)關(guān)接口的簡(jiǎn)稱,它是用戶瀏覽器和服務(wù)器端的應(yīng)用程序進(jìn)行連接的接口。

URLConnection類可以由兩種方式構(gòu)建:一種是通過(guò)一個(gè)URL實(shí)例openConnection()方法返回一個(gè),另一種是直接通過(guò)new URLConnection(URL ul)來(lái)創(chuàng)建。URLConnection實(shí)例不僅可以實(shí)現(xiàn)接收消息,還可以發(fā)送消息。

(二)Socket:又稱套接字,是網(wǎng)絡(luò)編程中最原始的通信方式之一。一個(gè)套接字通常包含一個(gè)IP地址和一個(gè)端口地址,后者一般對(duì)應(yīng)著某個(gè)應(yīng)用程序。因此如果要進(jìn)行Socket編程,首先要確定端口。一般來(lái)說(shuō),1024以下的端口已經(jīng)被指定為固定的服務(wù)類型,如果用戶要開(kāi)發(fā)自己的交流平臺(tái),必須使用之后的端口地址。

套接字(Socket)允許程序把網(wǎng)絡(luò)連接當(dāng)成一個(gè)流,可以向這個(gè)流寫(xiě)字節(jié),也可以從這個(gè)流讀取字節(jié)。Java的Socket類提供了豐富的功能。服務(wù)器使用的一般是ServerSocket,通過(guò)連接使雙方都會(huì)產(chǎn)生一個(gè)實(shí)例,對(duì)實(shí)例進(jìn)行操作來(lái)實(shí)現(xiàn)通信。大部分工作都是在抽象類SocketImpl中定義的。

任何一個(gè)網(wǎng)絡(luò)程序都離不開(kāi)連接的建立、讀寫(xiě)操作、關(guān)閉,程序還分為客戶和服務(wù)器兩種類型。除了關(guān)閉操作可以簡(jiǎn)單地使用Close()方法外,讀寫(xiě)操作都不是一句話說(shuō)得完的。

(三)Datagram:是一種面向無(wú)連接的通信方法。它基于UDP協(xié)議,不需要建立和釋放連接,每次通信時(shí)只要構(gòu)造一個(gè)DatagramPacket實(shí)例發(fā)送出去,對(duì)方同樣構(gòu)造一個(gè)DatagramPacket實(shí)例接收。以Datagram方式傳送數(shù)據(jù)時(shí),只是把數(shù)據(jù)的目的地記錄在數(shù)據(jù)包中,然后就直接放在網(wǎng)絡(luò)上進(jìn)行傳輸,系統(tǒng)不保證數(shù)據(jù)一定能夠安全送到,也不能確定什么時(shí)候可以送到。

三、Java實(shí)現(xiàn)加密

Java的網(wǎng)絡(luò)功能十分強(qiáng)大,還體現(xiàn)在作用它可以輕松實(shí)現(xiàn)各種加密算法。如今加密算法大致可分為兩類:對(duì)稱加密和公鑰加密。

對(duì)稱加密,發(fā)送方和接收方使用同樣的密鑰,前者用它來(lái)加密,后者則用它解密。這樣做本來(lái)是很安全的,例如3DES的密鑰為112位,這樣的組合數(shù)大約是5×1033,幾乎不可能被攻破。但是密鑰總要在雙方交換,因此交換途徑的保密性就很關(guān)鍵,使用人工固然安全卻麻煩,在網(wǎng)絡(luò)上傳輸雖方便但危險(xiǎn)。故如今網(wǎng)絡(luò)上大多使用公鑰加密方式。

公鑰加密的優(yōu)點(diǎn)在于,加密和解密的密鑰是不同的,前者稱為公鑰,后者稱為私鑰。公鑰,顧名思義,是可以公開(kāi)的,一臺(tái)電腦里可能存放了很多遠(yuǎn)程通訊方提供的公鑰。

公鑰解密還可以用在數(shù)字簽名上,這時(shí)的動(dòng)作是相反的:用私鑰加密,和用公鑰解密。Java里用于實(shí)現(xiàn)這方面功能的是java.security軟件包。

綜上所述,Java網(wǎng)絡(luò)編程主要基于TCP協(xié)議和UDP協(xié)議,TCP協(xié)議提供高可靠性服務(wù),適用于一次要傳輸交換大量報(bào)文的情況,信道上傳遞的包不需要源地址和目的地址,UDP協(xié)議提供高效率服務(wù),適用于依次傳輸交換少量報(bào)文的情形,每個(gè)數(shù)據(jù)包含目的的地址和端口號(hào),Java支持網(wǎng)絡(luò)通信的類在java.net包中。

參考文獻(xiàn):

[1]印旻.Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社,2007

[2]朱福喜.Java語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007

[3]李明才.Java語(yǔ)言程序設(shè)計(jì)案例教程[M].北京:中國(guó)水利水電出版社,2010,8

[4]張渝.Java語(yǔ)言程序設(shè)計(jì)[M].北京:北京大學(xué)出版社,2008

[5]張小波.Java程序設(shè)計(jì)教程[M].北京:冶金工業(yè)出版社,2006

主站蜘蛛池模板: 欧美国产日韩一区二区三区精品影视| 91福利一区二区三区| 欧美有码在线| 国产第一色| 亚洲欧美人成人让影院| 亚洲人成在线免费观看| 一级毛片无毒不卡直接观看 | 国产精品永久免费嫩草研究院| 激情爆乳一区二区| 三上悠亚在线精品二区| 亚洲品质国产精品无码| 在线观看免费AV网| 蜜臀AV在线播放| 精品天海翼一区二区| 国产真实乱子伦视频播放| 欧美成人二区| 伊人久久婷婷五月综合97色| 91探花在线观看国产最新| 综合社区亚洲熟妇p| 色首页AV在线| 四虎国产在线观看| 国产成人一区二区| 国产免费久久精品99re丫丫一| 欧美成人a∨视频免费观看| 2018日日摸夜夜添狠狠躁| 午夜视频在线观看免费网站 | 欧美国产在线看| 久久国语对白| 欧美精品v| 亚洲成肉网| 99精品伊人久久久大香线蕉| 99国产精品国产| 国产成人综合在线观看| 免费无码AV片在线观看国产| 久久性视频| 浮力影院国产第一页| 美女视频黄又黄又免费高清| 激情综合婷婷丁香五月尤物| 综合亚洲色图| 亚洲男人的天堂久久香蕉网 | 国产日韩欧美在线播放| 亚洲天堂视频网| 日韩精品无码免费专网站| 中文字幕无线码一区| 亚洲an第二区国产精品| 婷婷激情五月网| 色首页AV在线| 午夜国产大片免费观看| 亚洲va视频| 精品久久久久成人码免费动漫| 男女男精品视频| 国产精品嫩草影院视频| 亚洲人成成无码网WWW| 亚洲精品在线观看91| 免费看a毛片| 久久黄色免费电影| www精品久久| 亚洲乱码视频| 中文天堂在线视频| 日韩欧美视频第一区在线观看| 精品欧美视频| yy6080理论大片一级久久| 91青青草视频| 亚洲香蕉在线| 一区二区三区在线不卡免费| 精品自拍视频在线观看| 东京热高清无码精品| 国产性爱网站| 色老二精品视频在线观看| 欧美一区中文字幕| 国产日韩丝袜一二三区| 午夜不卡福利| 亚洲a级在线观看| 多人乱p欧美在线观看| 农村乱人伦一区二区| 九月婷婷亚洲综合在线| 婷婷午夜影院| 日韩天堂在线观看| 国产黄网永久免费| a级毛片免费在线观看| 国产欧美在线观看视频| 国产在线精品人成导航|