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

主站蜘蛛池模板: 免费无码AV片在线观看国产| 九九热在线视频| 青青青国产视频| 在线99视频| 久久77777| 午夜a级毛片| 无码一区二区三区视频在线播放| 久久精品国产91久久综合麻豆自制| 成人a免费α片在线视频网站| 亚洲国产成人精品无码区性色 | 日韩精品无码免费专网站| 免费国产一级 片内射老| 日韩欧美国产成人| 黄片在线永久| 看国产一级毛片| 国产18在线| 日韩毛片免费视频| 成人在线第一页| 久久精品视频亚洲| 精品1区2区3区| 五月天综合网亚洲综合天堂网| 国产精品亚洲片在线va| 456亚洲人成高清在线| 国产一在线| 国产靠逼视频| 亚洲国产欧美目韩成人综合| 欧美一级高清免费a| 成人91在线| 91青青草视频在线观看的| 国产国产人在线成免费视频狼人色| 国产资源免费观看| 女人18毛片久久| 天堂网亚洲系列亚洲系列| 伊人色天堂| 国产欧美日韩91| 18禁不卡免费网站| 亚洲V日韩V无码一区二区| 日韩无码视频网站| 国产超碰在线观看| 日本不卡在线视频| 中文一区二区视频| 国产成人精品在线| 欧美精品v日韩精品v国产精品| 色亚洲成人| 午夜视频在线观看免费网站| 国产第一页免费浮力影院| 国产成人精品高清在线| 午夜小视频在线| 国产欧美综合在线观看第七页| www.youjizz.com久久| 一区二区在线视频免费观看| 欧美精品不卡| 日韩欧美成人高清在线观看| 免费国产在线精品一区| 美女国产在线| 永久在线精品免费视频观看| 亚洲成人在线免费| 亚洲国产午夜精华无码福利| 中文精品久久久久国产网址| 日韩无码黄色| 91亚洲免费视频| 99re热精品视频中文字幕不卡| 国产精品免费入口视频| 日本欧美中文字幕精品亚洲| a级毛片免费网站| 国产乱子精品一区二区在线观看| 99久久国产综合精品女同| 亚洲欧美另类视频| 成人精品免费视频| 亚洲精品无码在线播放网站| 中文字幕久久波多野结衣 | 欧美精品一区在线看| 日韩最新中文字幕| 日韩区欧美区| 国产jizz| 国产伦片中文免费观看| 亚洲精品动漫| 亚洲免费人成影院| 欧美日韩亚洲综合在线观看 | 大香网伊人久久综合网2020| 久久精品人人做人人爽电影蜜月 | 99热免费在线|