亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chapter15.htm

?? Thinking In Java第二版(中文)
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Thinking in Java | Chinese Version by Trans Bot</title>

<meta name="Microsoft Theme" content="inmotion 111, default"></head>

<body background="../_themes/inmotion/inmtextb.gif" tppabs="http://member.netease.com/%7etransbot/Thinking%20in%20Java/_themes/inmotion/inmtextb.gif" bgcolor="#FFFFCC" text="#000000" link="#800000" vlink="#996633" alink="#FF3399">

<p>第15章 網(wǎng)絡(luò)編程<br>
<br>
歷史上的網(wǎng)絡(luò)編程都傾向于困難、復(fù)雜,而且極易出錯。<br>
程序員必須掌握與網(wǎng)絡(luò)有關(guān)的大量細(xì)節(jié),有時甚至要對硬件有深刻的認(rèn)識。一般地,我們需要理解連網(wǎng)協(xié)議中不同的“層”(Layer)。而且對于每個連網(wǎng)庫,一般都包含了數(shù)量眾多的函數(shù),分別涉及信息塊的連接、打包和拆包;這些塊的來回運輸;以及握手等等。這是一項令人痛苦的工作。<br>
但是,連網(wǎng)本身的概念并不是很難。我們想獲得位于其他地方某臺機器上的信息,并把它們移到這兒;或者相反。這與讀寫文件非常相似,只是文件存在于遠(yuǎn)程機器上,而且遠(yuǎn)程機器有權(quán)決定如何處理我們請求或者發(fā)送的數(shù)據(jù)。<br>
Java最出色的一個地方就是它的“無痛苦連網(wǎng)”概念。有關(guān)連網(wǎng)的基層細(xì)節(jié)已被盡可能地提取出去,并隱藏在JVM以及Java的本機安裝系統(tǒng)里進(jìn)行控制。我們使用的編程模型是一個文件的模型;事實上,網(wǎng)絡(luò)連接(一個“套接字”)已被封裝到系統(tǒng)對象里,所以可象對其他數(shù)據(jù)流那樣采用同樣的方法調(diào)用。除此以外,在我們處理另一個連網(wǎng)問題——同時控制多個網(wǎng)絡(luò)連接——的時候,Java內(nèi)建的多線程機制也是十分方便的。<br>
本章將用一系列易懂的例子解釋Java的連網(wǎng)支持。<br>
<br>
15.1 機器的標(biāo)識<br>
當(dāng)然,為了分辨來自別處的一臺機器,以及為了保證自己連接的是希望的那臺機器,必須有一種機制能獨一無二地標(biāo)識出網(wǎng)絡(luò)內(nèi)的每臺機器。早期網(wǎng)絡(luò)只解決了如何在本地網(wǎng)絡(luò)環(huán)境中為機器提供唯一的名字。但Java面向的是整個因特網(wǎng),這要求用一種機制對來自世界各地的機器進(jìn)行標(biāo)識。為達(dá)到這個目的,我們采用了IP(互聯(lián)網(wǎng)地址)的概念。IP以兩種形式存在著:<br>
(1) 大家最熟悉的DNS(域名服務(wù))形式。我自己的域名是bruceeckel.com。所以假定我在自己的域內(nèi)有一臺名為Opus的計算機,它的域名就可以是Opus.bruceeckel.com。這正是大家向其他人發(fā)送電子函件時采用的名字,而且通常集成到一個萬維網(wǎng)(WWW)地址里。<br>
(2) 此外,亦可采用“四點”格式,亦即由點號(.)分隔的四組數(shù)字,比如202.98.32.111。<br>
不管哪種情況,IP地址在內(nèi)部都表達(dá)成一個由32個二進(jìn)制位(bit)構(gòu)成的數(shù)字(注釋①),所以IP地址的每一組數(shù)字都不能超過255。利用由java.net提供的static 
InetAddress.getByName(),我們可以讓一個特定的Java對象表達(dá)上述任何一種形式的數(shù)字。結(jié)果是類型為InetAddress的一個對象,可用它構(gòu)成一個“套接字”(Socket),大家在后面會見到這一點。<br>
<br>
①:這意味著最多只能得到40億左右的數(shù)字組合,全世界的人很快就會把它用光。但根據(jù)目前正在研究的新IP編址方案,它將采用128 
bit的數(shù)字,這樣得到的唯一性IP地址也許在幾百年的時間里都不會用完。<br>
<br>
作為運用InetAddress.getByName()一個簡單的例子,請考慮假設(shè)自己有一家撥號連接因特網(wǎng)服務(wù)提供者(ISP),那么會發(fā)生什么情況。每次撥號連接的時候,都會分配得到一個臨時IP地址。但在連接期間,那個IP地址擁有與因特網(wǎng)上其他IP地址一樣的有效性。如果有人按照你的IP地址連接你的機器,他們就有可能使用在你機器上運行的Web或者FTP服務(wù)器程序。當(dāng)然這有個前提,對方必須準(zhǔn)確地知道你目前分配到的IP。由于每次撥號連接獲得的IP都是隨機的,怎樣才能準(zhǔn)確地掌握你的IP呢?<br>
下面這個程序利用InetAddress.getByName()來產(chǎn)生你的IP地址。為了讓它運行起來,事先必須知道計算機的名字。該程序只在Windows 
95中進(jìn)行了測試,但大家可以依次進(jìn)入自己的“開始”、“設(shè)置”、“控制面板”、“網(wǎng)絡(luò)”,然后進(jìn)入“標(biāo)識”卡片。其中,“計算機名稱”就是應(yīng)在命令行輸入的內(nèi)容。<br>
<br>
827頁程序<br>
<br>
就我自己的情況來說,機器的名字叫作“Colossus”(來自同名電影,“巨人”的意思。我在這臺機器上有一個很大的硬盤)。所以一旦連通我的ISP,就象下面這樣執(zhí)行程序:<br>
java whoAmI Colossus<br>
得到的結(jié)果象下面這個樣子(當(dāng)然,這個地址可能每次都是不同的):<br>
Colossus/202.98.41.151<br>
假如我把這個地址告訴一位朋友,他就可以立即登錄到我的個人Web服務(wù)器,只需指定目標(biāo)地址http://202.98.41.151即可(當(dāng)然,我此時不能斷線)。有些時候,這是向其他人發(fā)送信息或者在自己的Web站點正式出臺以前進(jìn)行測試的一種方便手段。<br>
<br>
15.1.1 服務(wù)器和客戶機<br>
網(wǎng)絡(luò)最基本的精神就是讓兩臺機器連接到一起,并相互“交談”或者“溝通”。一旦兩臺機器都發(fā)現(xiàn)了對方,就可以展開一次令人愉快的雙向?qū)υ挕5鼈冊鯓硬拍堋鞍l(fā)現(xiàn)”對方呢?這就象在游樂園里那樣:一臺機器不得不停留在一個地方,偵聽其他機器說:“嘿,你在哪里呢?”<br>
“停留在一個地方”的機器叫作“服務(wù)器”(Server);到處“找人”的機器則叫作“客戶機”(Client)或者“客戶”。它們之間的區(qū)別只有在客戶機試圖同服務(wù)器連接的時候才顯得非常明顯。一旦連通,就變成了一種雙向通信,誰來扮演服務(wù)器或者客戶機便顯得不那么重要了。<br>
所以服務(wù)器的主要任務(wù)是偵聽建立連接的請求,這是由我們創(chuàng)建的特定服務(wù)器對象完成的。而客戶機的任務(wù)是試著與一臺服務(wù)器建立連接,這是由我們創(chuàng)建的特定客戶機對象完成的。一旦連接建好,那么無論在服務(wù)器端還是客戶機端,連接只是魔術(shù)般地變成了一個IO數(shù)據(jù)流對象。從這時開始,我們可以象讀寫一個普通的文件那樣對待連接。所以一旦建好連接,我們只需象第10章那樣使用自己熟悉的IO命令即可。這正是Java連網(wǎng)最方便的一個地方。<br>
<br>
1. 在沒有網(wǎng)絡(luò)的前提下測試程序<br>
由于多種潛在的原因,我們可能沒有一臺客戶機、服務(wù)器以及一個網(wǎng)絡(luò)來測試自己做好的程序。我們也許是在一個課堂環(huán)境中進(jìn)行練習(xí),或者寫出的是一個不十分可靠的網(wǎng)絡(luò)應(yīng)用,還能拿到網(wǎng)絡(luò)上去。IP的設(shè)計者注意到了這個問題,并建立了一個特殊的地址——localhost——來滿足非網(wǎng)絡(luò)環(huán)境中的測試要求。在Java中產(chǎn)生這個地址最一般的做法是:<br>
InetAddress addr = InetAddress.getByName(null);<br>
如果向getByName()傳遞一個null(空)值,就默認(rèn)為使用localhost。我們用InetAddress對特定的機器進(jìn)行索引,而且必須在進(jìn)行進(jìn)一步的操作之前得到這個InetAddress(互聯(lián)網(wǎng)地址)。我們不可以操縱一個InetAddress的內(nèi)容(但可把它打印出來,就象下一個例子要演示的那樣)。創(chuàng)建InetAddress的唯一途徑就是那個類的static(靜態(tài))成員方法getByName()(這是最常用的)、getAllByName()或者getLocalHost()。<br>
為得到本地主機地址,亦可向其直接傳遞字串&quot;localhost&quot;:<br>
InetAddress.getByName(&quot;localhost&quot;);<br>
或者使用它的保留IP地址(四點形式),就象下面這樣:<br>
InetAddress.getByName(&quot;127.0.0.1&quot;);<br>
這三種方法得到的結(jié)果是一樣的。<br>
<br>
15.1.2 端口:機器內(nèi)獨一無二的場所<br>
有些時候,一個IP地址并不足以完整標(biāo)識一個服務(wù)器。這是由于在一臺物理性的機器中,往往運行著多個服務(wù)器(程序)。由IP表達(dá)的每臺機器也包含了“端口”(Port)。我們設(shè)置一個客戶機或者服務(wù)器的時候,必須選擇一個無論客戶機還是服務(wù)器都認(rèn)可連接的端口。就象我們?nèi)グ輹橙藭r,IP地址是他居住的房子,而端口是他在的那個房間。<br>
注意端口并不是機器上一個物理上存在的場所,而是一種軟件抽象(主要是為了表述的方便)。客戶程序知道如何通過機器的IP地址同它連接,但怎樣才能同自己真正需要的那種服務(wù)連接呢(一般每個端口都運行著一種服務(wù),一臺機器可能提供了多種服務(wù),比如HTTP和FTP等等)?端口編號在這里扮演了重要的角色,它是必需的一種二級定址措施。也就是說,我們請求一個特定的端口,便相當(dāng)于請求與那個端口編號關(guān)聯(lián)的服務(wù)。“報時”便是服務(wù)的一個典型例子。通常,每個服務(wù)都同一臺特定服務(wù)器機器上的一個獨一無二的端口編號關(guān)聯(lián)在一起。客戶程序必須事先知道自己要求的那項服務(wù)的運行端口號。<br>
系統(tǒng)服務(wù)保留了使用端口1到端口1024的權(quán)力,所以不應(yīng)讓自己設(shè)計的服務(wù)占用這些以及其他任何已知正在使用的端口。本書的第一個例子將使用端口8080(為追憶我的第一臺機器使用的老式8位Intel 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费观看高清完整版在| 一本在线高清不卡dvd| 在线播放视频一区| 日韩不卡在线观看日韩不卡视频| 欧美日韩1234| 激情小说亚洲一区| 国产精品美女久久久久久久久久久 | 久久er精品视频| 精品精品国产高清a毛片牛牛 | 狠狠色综合色综合网络| 国产亚洲欧美色| 91片在线免费观看| 婷婷成人综合网| 久久青草欧美一区二区三区| 国产精品一级黄| 亚洲欧洲av在线| 欧美日韩一区二区三区高清| 蜜桃视频一区二区三区| 久久综合久久综合亚洲| 本田岬高潮一区二区三区| 亚洲影视在线播放| 精品理论电影在线观看 | 另类小说图片综合网| 亚洲国产精品成人综合色在线婷婷| 99精品视频一区| 日韩成人免费电影| 国产精品不卡一区二区三区| 欧美三级资源在线| 国产高清不卡一区| 亚洲大片在线观看| 国产欧美一区二区精品忘忧草| 色偷偷一区二区三区| 久久国产综合精品| 一区二区不卡在线播放| 精品久久国产字幕高潮| 色综合天天综合色综合av | 欧美白人最猛性xxxxx69交| www.日韩大片| 美女网站视频久久| 亚洲综合一区二区| 国产欧美日韩久久| 日韩视频在线永久播放| 91亚洲精华国产精华精华液| 老司机免费视频一区二区 | 久久精品亚洲精品国产欧美| 欧美午夜精品久久久久久孕妇| 国产精品综合在线视频| 偷窥国产亚洲免费视频| 亚洲丝袜美腿综合| 国产亚洲精久久久久久| 欧美卡1卡2卡| 日本韩国欧美一区| 成人免费不卡视频| 国产一区二区三区在线看麻豆| 亚洲图片一区二区| 亚洲欧美韩国综合色| 中文字幕精品三区| 久久精品免费在线观看| 欧美xxxx老人做受| 91精品国产手机| 欧美日韩亚洲国产综合| 一道本成人在线| 91视频一区二区三区| 成a人片国产精品| 成人午夜视频在线观看| 国产一区免费电影| 久久99精品久久久久久国产越南| 亚洲成人精品一区二区| 一区二区三区电影在线播| 亚洲色图第一区| 亚洲三级免费电影| 亚洲日本中文字幕区| 亚洲欧美中日韩| √…a在线天堂一区| 中文字幕一区在线观看视频| 亚洲国产精品ⅴa在线观看| 国产日韩欧美一区二区三区乱码 | 欧美日韩国产一级片| 欧美性淫爽ww久久久久无| 色噜噜狠狠成人网p站| 色先锋久久av资源部| 色菇凉天天综合网| 欧美亚洲动漫另类| 欧美伦理电影网| 日韩欧美一卡二卡| 久久综合色8888| 国产目拍亚洲精品99久久精品| 国产欧美日产一区| 亚洲三级电影网站| 性做久久久久久免费观看 | 三级一区在线视频先锋| 日韩avvvv在线播放| 六月丁香婷婷色狠狠久久| 国产乱子伦一区二区三区国色天香| 黄一区二区三区| 成人app下载| 欧美亚洲国产bt| 日韩一区二区三区三四区视频在线观看 | 久久精品久久精品| 国产精品久久国产精麻豆99网站| 国产精品福利一区| 亚洲电影中文字幕在线观看| 午夜精品视频一区| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲激情图片小说视频| 国产偷国产偷亚洲高清人白洁 | 伊人色综合久久天天| 欧美三级午夜理伦三级中视频| 欧美视频在线观看一区二区| 日韩一区二区免费高清| 久久精品一区四区| 亚洲精品大片www| 视频在线观看一区二区三区| 久久国内精品视频| 99视频热这里只有精品免费| 一区二区欧美在线观看| 欧美三区在线视频| 久久午夜羞羞影院免费观看| 中文字幕日韩一区| 免费日本视频一区| 白白色 亚洲乱淫| 日韩一二在线观看| 自拍偷拍欧美激情| 极品瑜伽女神91| 在线精品视频小说1| 日韩三级视频中文字幕| 久久亚洲综合色一区二区三区| 亚洲欧美一区二区三区孕妇| 蜜桃视频在线一区| 91成人国产精品| 久久精品亚洲一区二区三区浴池| 亚洲国产婷婷综合在线精品| 国产高清久久久久| 免费精品视频在线| 亚洲国产日日夜夜| 成人午夜精品在线| 精品国产伦一区二区三区观看体验| 欧美xxx久久| 亚洲国产精品久久一线不卡| 欧美精品久久99久久在免费线| 国产一区二区精品久久91| 亚洲高清免费在线| 中文字幕欧美日韩一区| 欧美激情艳妇裸体舞| 日韩码欧中文字| 欧美在线观看18| 老司机午夜精品| 国模冰冰炮一区二区| 国产米奇在线777精品观看| 一区二区三区四区视频精品免费| 91精品国产综合久久福利软件| 色视频欧美一区二区三区| 午夜精品影院在线观看| 在线观看日韩av先锋影音电影院| 欧美另类videos死尸| 91女厕偷拍女厕偷拍高清| 99久精品国产| 色网站国产精品| 国产精品高潮久久久久无| 中文字幕不卡在线观看| 久久天天做天天爱综合色| 欧美一区午夜视频在线观看| 99精品久久99久久久久| 日韩**一区毛片| 一区二区三区日韩精品| 欧美国产禁国产网站cc| 69精品人人人人| 一本色道亚洲精品aⅴ| 亚洲国产日产av| 国产精品资源在线看| 日韩三级视频在线看| 免播放器亚洲一区| 日韩女优视频免费观看| 婷婷丁香久久五月婷婷| 国产精品亚洲视频| 91精品在线观看入口| 中文字幕在线免费不卡| eeuss鲁一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 欧美剧在线免费观看网站| 亚洲6080在线| 欧美性猛交一区二区三区精品| av电影天堂一区二区在线观看| 精品国产乱码91久久久久久网站| 欧美日产国产精品| 日韩欧美一区在线观看| 国产自产视频一区二区三区| www精品美女久久久tv| 欧美日韩一区二区在线视频| 欧美日韩精品一区二区天天拍小说| 亚洲女人****多毛耸耸8| 亚洲美女精品一区| 99精品热视频| 国产精品一二三四区| 99久久婷婷国产精品综合| 在线观看视频91| aaa欧美日韩| 男人的j进女人的j一区| 日韩一级高清毛片| 91麻豆精品国产91久久久|