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

主站蜘蛛池模板: 51国产偷自视频区视频手机观看 | 国产一二三区视频| 亚洲精品久综合蜜| 久久无码高潮喷水| 亚洲人在线| 亚洲欧美国产视频| 国产精品网址在线观看你懂的| 成年人久久黄色网站| 婷婷亚洲最大| 99热这里只有精品免费国产| 五月婷婷丁香综合| 国产精品极品美女自在线网站| av在线手机播放| 久久久成年黄色视频| 毛片视频网| 久久国产V一级毛多内射| 黄色在线不卡| 国产精品真实对白精彩久久| 亚洲性网站| 欧美第九页| 亚洲国产系列| 精品福利视频导航| 免费又爽又刺激高潮网址 | 极品国产一区二区三区| 久久亚洲高清国产| 丁香六月激情婷婷| 欧美日韩在线成人| 国产探花在线视频| 日本在线免费网站| 欧美中文字幕在线播放| 亚洲精品图区| 日韩久草视频| 国产不卡国语在线| 国产精女同一区二区三区久| 永久免费精品视频| 国产成人精品一区二区| 色成人亚洲| 欧美国产日产一区二区| 天天躁狠狠躁| 久久久久亚洲精品无码网站| 91区国产福利在线观看午夜| 亚洲第一香蕉视频| 国产v欧美v日韩v综合精品| 天天色天天操综合网| 国产在线啪| 免费激情网址| 手机在线国产精品| 大香伊人久久| 天天综合网色中文字幕| 亚洲欧美在线综合图区| 亚洲无限乱码| 在线观看国产网址你懂的| 久久永久精品免费视频| 国产剧情国内精品原创| 亚洲无码不卡网| 中字无码精油按摩中出视频| 99精品福利视频| 三区在线视频| 久久香蕉国产线看观看亚洲片| 久久亚洲AⅤ无码精品午夜麻豆| 91亚瑟视频| 99久久国产综合精品女同| 天堂av高清一区二区三区| 露脸国产精品自产在线播| 国产人免费人成免费视频| 高清大学生毛片一级| 亚洲天堂网站在线| 狠狠色香婷婷久久亚洲精品| 欧美日韩理论| 久久狠狠色噜噜狠狠狠狠97视色| 国产欧美视频在线观看| 久久这里只有精品8| 国产成人免费观看在线视频| 久久无码av一区二区三区| 国产精品一线天| 亚洲精品在线观看91| 九九热精品视频在线| 欧美国产日产一区二区| 亚洲第一综合天堂另类专| 亚洲综合亚洲国产尤物| 中文国产成人精品久久一| 国产97视频在线|