出版時(shí)間:2009-1 出版社:機(jī)械工業(yè)出版社 作者:(美)卡爾弗特,(美)多納霍 著 頁數(shù):172 譯者:周恒民
Tag標(biāo)簽:無
前言
如今,TCP/IP已成為計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議事實(shí)上的標(biāo)準(zhǔn),而Java憑借其跨平臺(tái)特性和對(duì)網(wǎng)絡(luò)編程的強(qiáng)大支持能力,在網(wǎng)絡(luò)應(yīng)用中已占據(jù)了主導(dǎo)地位。本書基于TCP/IP套接字的相關(guān)原理,對(duì)如何在Java中進(jìn)行套接字編程作了深入淺出的介紹?! ”緯鴥?nèi)容簡(jiǎn)明扼要,條理清晰,并在講解相應(yīng)的概念或編程技巧時(shí)列舉了大量的示例程序,能夠使讀者在動(dòng)手過程中加深理解,而每章結(jié)束時(shí)的練習(xí)可以幫助讀者檢查自己對(duì)已學(xué)知識(shí)的掌握程度,因此非常適合作為Java套接字編程的入門教程。雖然本書專注于介紹如何使用Java進(jìn)行TCP/IP套接字編程,但其涉及的套接字相關(guān)概念和基本原理與具體編程語言無關(guān),從而使讀者能夠抓住套接字編程的本質(zhì),并輕松地轉(zhuǎn)向其他編程語言?! ∽g者在翻譯本書時(shí)盡量忠實(shí)于原文,必要時(shí)對(duì)原書中提到的概念作了一定的解釋,并力求做到言簡(jiǎn)意賅。限于水平,翻譯過程中難免有疏漏之處,敬請(qǐng)廣大讀者批評(píng)指正。
內(nèi)容概要
在7CP/IP Socket首次發(fā)布時(shí),Java作為一個(gè)新的未被關(guān)注的編程語言剛出現(xiàn)。然而,自2001年以來,Java的網(wǎng)絡(luò)編程能力已經(jīng)得到了很大程度的擴(kuò)展,而且持續(xù)的應(yīng)用優(yōu)勢(shì)已經(jīng)使其成為了一個(gè)占主導(dǎo)地位的平臺(tái)??紤]到Java受歡迎程度和近期在形式上和功能上令人興奮的創(chuàng)新,本書的新版涵蓋了Java的當(dāng)前最新版本的內(nèi)容(7.5版至1.7版),以及一些新的重要的抽象,包括NetworkInterface,InterfaceAddress,Inet4/6Address抽象、SocketAddress InetSocketAddressf1]Executor等?,F(xiàn)在幾乎所有互聯(lián)網(wǎng)應(yīng)用程序都使用Java Socket進(jìn)行通信,而本書專注的、教導(dǎo)式的方法,使讀者能夠快速掌握所有計(jì)算機(jī)通信的任務(wù)和技術(shù)要點(diǎn)?! ”緯攸c(diǎn) 對(duì)Socket編程的重點(diǎn)進(jìn)行了集中簡(jiǎn)明的介紹,以使讀者能夠迅速掌握;并且使工程師們能夠迅速地將所學(xué)的技能應(yīng)用到他們的日常工作中?! ?duì)最新的Java平臺(tái)(1.7)進(jìn)行了簡(jiǎn)明而緊隨其發(fā)展的介紹,使開發(fā)者即使在最新的技術(shù)面前也能處理大量未探究的陷阱?! ∨涮拙W(wǎng)站(books.elsevier.com/companonS/9780123742551)為所有的示例程序提供了源碼,從而使讀者能夠在上下文中查看重要的對(duì)象和方法,并理解每行代碼的作用。
作者簡(jiǎn)介
Kenneth L.Calvert,肯塔基大學(xué)(University of Kentucky)的教授,他的教學(xué)和研究方向是計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)。他已經(jīng)有近20年的TCP/IP Socket編程經(jīng)驗(yàn)?! ichael J.Donahoo,貝勒大學(xué)(Baylor University)的副教授,為大學(xué)生或大學(xué)研究生講授計(jì)算機(jī)網(wǎng)絡(luò)課程。他已經(jīng)編著了在各種編程語言下進(jìn)行Socket編程的多本書籍和一本有關(guān)SQL的書籍。
書籍目錄
譯者序前言第1章 簡(jiǎn)介1.1 計(jì)算機(jī)網(wǎng)絡(luò)、分組報(bào)文和協(xié)議1.2 關(guān)于地址1.3 關(guān)于名字1.4 客戶端和服務(wù)器1.5 什么是套接字1.6 練習(xí)第2章 基本套接字2.1 套接字地址2.2 TCP套接字2.2.1 TCP客戶端2.2.2 TCP服務(wù)器端2.2.3 輸入輸出流2.3 UDP套接字2.3.1 DatagramPacket類2.3.2 UDP客戶端2.3.3 UDP服務(wù)器端2.3.4 使用UDP套接字發(fā)送和接收信息2.4 練習(xí)第3章 發(fā)送和接收數(shù)據(jù)3.1 信息編碼3.1.1 基本整型3.1.2 字符串和文本3.1.3 位操作:布爾值編碼3.2 組合輸入輸出流3.3 成幀與解析3.4 Java特定編碼3.5 構(gòu)建和解析協(xié)議消息3.5.1 基于文本的表示方法3.5.2 二進(jìn)制表示方法3.5.3 發(fā)送和接收3.6 結(jié)束3.7 練習(xí)第4章 進(jìn)階4.1 多任務(wù)處理4.1.1 Java多線程4.1.2 服務(wù)器協(xié)議4.1.3 一客戶一線程4.1.4 線程池4.1.5 系統(tǒng)管理調(diào)度:Executor接口4.2 阻塞和超時(shí)4.2.1 accept()、read()和receive()4.2.2 連接和寫數(shù)據(jù)4.2.3 限制每個(gè)客戶端的時(shí)間4.3 多接收者4.3.1 廣播4.3.2 多播4.4 控制默認(rèn)行為4.4.1 Keep-Alive4.4.2 發(fā)送和接收緩存區(qū)的大小4.4.3 超時(shí)4.4.4 地址重用4.4.5 消除緩沖延遲4.4.6 緊急數(shù)據(jù)4.4.7 關(guān)閉后停留4.4.8 廣播許可4.4.9 通信等級(jí)4.4.10 基于性能的協(xié)議選擇4.5 關(guān)閉連接4.6 Applet4.7 結(jié)束4.8 練習(xí)第5章 NIO5.1 為什么需要NIO5.2 與Buffer一起使用Channel5.3 Selector5.4 Buffer詳解5.4.1 Buffer索引5.4.2 創(chuàng)建Buffer5.4.3 存儲(chǔ)和接收數(shù)據(jù)5.4.4 準(zhǔn)備Buffer:clear()、flip()和rewind()5.4.5 壓縮Buffer中的數(shù)據(jù)5.4.6 Buffer透視:duplicate()和slice()等5.4.7 字符編碼5.5 流(TCP)信道詳解5.6 Selector詳解5.6.1 在信道中注冊(cè)5.6.2 選取和識(shí)別準(zhǔn)備就緒的信道5.6.3 信道附件5.6.4 Selector小結(jié)5.7 數(shù)據(jù)報(bào)(UDP)信道5.8 練習(xí)第6章 深入剖析6.1 緩沖和TCP6.2 死鎖風(fēng)險(xiǎn)6.3 性能相關(guān)6.4 TCP套接字的生存周期6.4.1 連接6.4.2 關(guān)閉TCP連接6.5 解調(diào)多路復(fù)用揭秘6.6 練習(xí)
章節(jié)摘錄
通常情況下,在程序中使用套接字是因?yàn)樾枰蚱渌绦蛱峁┬畔?,或使用其他程序提供的信息。這并不是什么魔法:任何要交換信息的程序之間在信息的編碼方式上必須達(dá)成共識(shí)(如將信息表示為位序列),以及哪個(gè)程序發(fā)送信息,什么時(shí)候和怎樣接收信息都將影響程序的行為。程序間達(dá)成的這種包含了信息交換的形式和意義的共識(shí)稱為協(xié)議,用來實(shí)現(xiàn)特定應(yīng)用程序的協(xié)議叫做應(yīng)用程序協(xié)議。前面章節(jié)中的回饋程序示例中的應(yīng)用程序協(xié)議都過于簡(jiǎn)單:客戶端和服務(wù)器的行為都不受它們之間所交換的信息內(nèi)容的影響。而在絕大部分實(shí)際應(yīng)用中,客戶端和服務(wù)器的行為都要依賴于它們所交換的信息,因此應(yīng)用程序協(xié)議通常更加復(fù)雜?! CP/IP協(xié)議以字節(jié)的方式傳輸用戶數(shù)據(jù),并沒有對(duì)其進(jìn)行檢查和修改。這個(gè)特點(diǎn)使應(yīng)用程序可以非常靈活地對(duì)其傳輸?shù)男畔⑦M(jìn)行編碼。大部分應(yīng)用程序協(xié)議是根據(jù)由字段序列組成的離散信息定義的,其中每個(gè)字段中都包含了一段以位序列編碼的特定的信息。應(yīng)用程序協(xié)議中明確定義了信息的發(fā)送者應(yīng)該怎樣排列和解釋這些位序列,同時(shí)還要定義接收者應(yīng)該怎樣解析,這樣才使信息的接收者能夠抽取出每個(gè)字段的意義。TCP/IP協(xié)議的唯一約束是,信息必須在塊(chunk)中發(fā)送和接收,而塊的長(zhǎng)度必須是8位的倍數(shù),因此,我們可以認(rèn)為在TCP/IP協(xié)議中傳輸?shù)男畔⑹亲止?jié)序列。鑒于此,我們可以進(jìn)一步把傳輸?shù)男畔⒖醋鲾?shù)字序列或數(shù)組,每個(gè)數(shù)字的取值范圍是0~255。這與8位編碼的二進(jìn)制數(shù)值范圍是一致的:00000000代表0,00000001代表1,00000010代表2等,最多到11111111,即255?! ∪绻憬⒘艘粋€(gè)程序使用套接字與其他程序交換信息,通常符合下面兩種情況之一:要么是你設(shè)計(jì)和編寫了套接字的客戶端和服務(wù)器端,這種情況下你能夠隨心所欲地定義自己的應(yīng)用程序協(xié)議;要么是你實(shí)現(xiàn)了一個(gè)已經(jīng)存在的協(xié)議,或許是一個(gè)協(xié)議標(biāo)準(zhǔn)。
媒體關(guān)注與評(píng)論
我覺得本書做了很好的工作,包括簡(jiǎn)明扼要地抓住關(guān)鍵問題,提供了非常好的實(shí)例,因此可以作為重要主題的參考資料。我認(rèn)為本書適合希望快速地掌握J(rèn)ava網(wǎng)絡(luò)編程的開發(fā)者,也可以作為學(xué)生的補(bǔ)充讀物?! 猂obere Brunner,美國國家超級(jí)計(jì)算應(yīng)用中心(NCSA)
編輯推薦
《Java TCP/IP Socket編程(原書第2版)》適合作為Java Socket編程的入門教程,也可供從事網(wǎng)絡(luò)相關(guān)專業(yè)的技術(shù)人員參考。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載