亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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語言中如何進(jìn)行TCP和UDP格式的網(wǎng)絡(luò)編程,通過簡單的實(shí)例演示網(wǎng)絡(luò)編程的基本方法,旨在對網(wǎng)絡(luò)編程愛好者起到拋磚引玉的作用。

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

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

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

        一、TCP和UDP協(xié)議

        TCP和UDP協(xié)議屬于傳輸層協(xié)議。其中TCP提供IP環(huán)境下的數(shù)據(jù)可靠傳輸,它提供的服務(wù)包括數(shù)據(jù)流傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。通過面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。通俗說,它是事先為所發(fā)送的數(shù)據(jù)開辟出連接好的通道,然后再進(jìn)行數(shù)據(jù)發(fā)送;而UDP則不為IP提供可靠性、流控或差錯(cuò)恢復(fù)功能。一般來說,TCP對應(yīng)的是可靠性要求高的應(yīng)用,而UDP對應(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)麻煩。對已經(jīng)存在的協(xié)議,程序員應(yīng)當(dāng)了解它的每一段代表的含義,改而使用URL類可以很大程度上免去這些麻煩。

        1.URL類

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

        2.URLConnection類

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

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

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

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

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

        (三)Datagram:是一種面向無連接的通信方法。它基于UDP協(xié)議,不需要建立和釋放連接,每次通信時(shí)只要構(gòu)造一個(gè)DatagramPacket實(shí)例發(fā)送出去,對方同樣構(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)各種加密算法。如今加密算法大致可分為兩類:對稱加密和公鑰加密。

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

        公鑰加密的優(yōu)點(diǎn)在于,加密和解密的密鑰是不同的,前者稱為公鑰,后者稱為私鑰。公鑰,顧名思義,是可以公開的,一臺電腦里可能存放了很多遠(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ù)包含目的的地址和端口號,Java支持網(wǎng)絡(luò)通信的類在java.net包中。

        參考文獻(xiàn):

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

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

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

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

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

        日产精品久久久久久久蜜臀| 日本亚洲视频一区二区三区| 亚洲精品欧美精品日韩精品| 国产成人无码一区二区在线观看| 精品视频在线观看免费无码| 久久久亚洲精品一区二区| 中文字幕乱码日本亚洲一区二区 | 人人妻人人狠人人爽| 久久99精品久久久久久| 亚洲AV手机专区久久精品| 人妻中文字幕一区二区视频| 午夜精品久久久久久久无码| 国产小受呻吟gv视频在线观看| 亚洲国产字幕| 日韩人妻久久中文字幕 | 欧美日韩一区二区三区自拍| 最新国产成人在线网站| 亚洲少妇一区二区三区老| 亚洲小说区图片区色综合网| 亚洲综合色自拍一区| av草草久久久久久久久久久| 亚洲1区第2区第3区在线播放| 久久综合亚洲色一区二区三区| 国产精品内射后入合集| 一区二区三区午夜视频在线观看| 一区二区三区日本伦理| 国产av无码专区亚洲av中文| 欧美人与动zozo| 久久综合九色综合久久久| 免费观看mv大片高清| 最近中文字幕视频高清| 谁有在线观看av中文| 日韩中文字幕一区二区二区| 中文字幕av免费专区| 亚洲婷婷丁香激情| 久久精品国产亚洲av沈先生| 国产精品无码人妻在线| 特级毛片a级毛片在线播放www | 免费国产a国产片高清网站| 狠狠躁夜夜躁无码中文字幕| 美腿丝袜美腿国产在线|