出版時(shí)間:2009-11 出版社:清華大學(xué)出版社 作者:(美)多納霍,(美)卡爾弗特 頁數(shù):180 譯者:陳宗斌
Tag標(biāo)簽:無
前言
在我們編寫本書的第1版時(shí),在關(guān)于聯(lián)網(wǎng)的大學(xué)課程中包括編程方面的內(nèi)容不是很常見。現(xiàn)在看起來這似乎令人難以置信,目前,Internet變得對(duì)我們的世界如此重要,并且講授實(shí)用編程和真實(shí)協(xié)議示例的好處被如此廣泛地接受。盡管現(xiàn)在有其他語言提供了對(duì)Interact的訪問,人們對(duì)原始的基于C的Berkeley Sockets仍然有很濃厚的興趣。用于聯(lián)網(wǎng)的Sockets API(應(yīng)用程序編程接口)是20世紀(jì)80年代在加州大學(xué)伯克利分校為I_YNIX:的BSD版本開發(fā)的——這種UNIx版本是現(xiàn)在稱為開源項(xiàng)目的最初幾個(gè)示例之一?! ockets API和Intemet在許多競(jìng)爭(zhēng)性協(xié)議族——IPX、Appletalk、DECNet、OSI、SNA以及TCPfiP(Transmission Control Protocol/Intemet Protocal,傳輸控制協(xié)議/網(wǎng)際協(xié)議)一一的世界中逐漸成長(zhǎng)起來,并且Sockets被設(shè)計(jì)成支持所有這些協(xié)議。在我們編寫本書第1版時(shí),只有很少的幾個(gè)協(xié)議族被廣泛應(yīng)用,今天這個(gè)數(shù)量甚至更少。然而,就像我們?cè)诒緯?版中所預(yù)計(jì)的,對(duì)于那些想要設(shè)計(jì)和構(gòu)建使用Intemet(即使用TCP/IP)的分布式應(yīng)用程序的人來說,Sockets API仍然很重要。并且此接口已經(jīng)證明非常健壯,足以支持網(wǎng)際協(xié)議的新版本(IPv6),現(xiàn)在幾乎所有的公共計(jì)算平臺(tái)都支持IPv6?! 蓚€(gè)主要的考慮促使我們編寫了本書的第2版。第一,依據(jù)我們自己的經(jīng)驗(yàn)和其他人的反饋意見,我們發(fā)現(xiàn)一些主題需要更深入地介紹,另外一些主題則需要擴(kuò)展。第二個(gè)考慮是人們?nèi)找娼邮懿⑹褂肐Pv6,它現(xiàn)在實(shí)質(zhì)上受到所有當(dāng)前的最終系統(tǒng)平臺(tái)的支持。在編寫本書時(shí),不可能使用IPv6與Intemet上的大部分主機(jī)交換信息,但是有可能給其中的許多主機(jī)分配一個(gè)IPv6地址。盡管稱IPv6將接管整個(gè)世界仍言之過早,但是開始編寫應(yīng)用程序以為之做好準(zhǔn)備卻正當(dāng)其時(shí)。
內(nèi)容概要
本書為開發(fā)成熟且功能強(qiáng)大的Web應(yīng)用程序提供所需的知識(shí)和技巧。本書以教學(xué)指南的方式,幫助讀者掌握在C語言環(huán)境下,用套接字實(shí)現(xiàn)客戶—服務(wù)器項(xiàng)目開發(fā)的任務(wù)和技術(shù)。本書的本版次增加了對(duì)最新技術(shù)的介紹,如對(duì)IPv6的支持,以及更詳細(xì)的編程策略等內(nèi)容。 本書內(nèi)容簡(jiǎn)明扼要、示例豐富,既可作為高等學(xué)校網(wǎng)絡(luò)編程課程的教學(xué)參考書,也是網(wǎng)絡(luò)開發(fā)人員進(jìn)行應(yīng)用程序開發(fā)的常備參考書。
作者簡(jiǎn)介
多納霍,Baylor大學(xué)副教授,為本科生和研究生講授網(wǎng)絡(luò)技術(shù)課程。他編寫了多本關(guān)于各種語言的套接字編程圖書,以及一本SQL方面的圖書。
書籍目錄
第1章簡(jiǎn)介 1.1 網(wǎng)絡(luò)、分組和協(xié)議 1.2 關(guān)于地址 1.2.1 記下IP地址 1.2.2 處理兩個(gè)版本 1.2.3 端口號(hào) 1.2.4 特殊地址 1.3 關(guān)于名稱 1.4 客戶與服務(wù)器 1.5 什么是套接字 練習(xí)題第2章 基本的TCP套接字 2.1 IPv4 TCP客戶 2.2 IPv4 TCP服務(wù)器 2.3 創(chuàng)建和銷毀套接字 2.4 指定地址 2.4.1 通用地址 2.4.2 IPv4地址 2.4.3 IPv6地址 2.4.4 通用地址存儲(chǔ)器 2.4.5 二進(jìn)制/字符串地址轉(zhuǎn)換 2.4.6 獲取套接字的關(guān)聯(lián)地址 2.5 連接套接字 2.6 綁定到地址 2.7 處理進(jìn)入的連接 2.8 通信 2.9 使用IPv6 練習(xí)題第3章 關(guān)于名稱和地址族 3.1 將名稱映射到數(shù)字 3.1.1 訪問名稱服務(wù) 3.1.2 詳細(xì)信息 3.2 編寫地址通用的代碼 3.2.1 通用的TCP客戶 3.2.2 通用的TCP服務(wù)器 3.2.3 IPv4與IPv6之間互操作 3.3 從數(shù)字獲取名稱 練習(xí)題第4章 使用UDP套接字 4.1 UDP客戶 4.2 UDP服務(wù)器 4.3 利用UDP套接字進(jìn)行發(fā)送和接收 4.4 連接UDP套接字 練習(xí)題第5章 發(fā)送和接收數(shù)據(jù) 5.1 編碼整數(shù) 5.1.1 整數(shù)的大小 5.1.2 字節(jié)排序 5.1.3 符號(hào)性與符號(hào)擴(kuò)展 5.1.4 手工編碼整數(shù) 5.1.5 在流中包裝TCP套接字 5.1.6 結(jié)構(gòu)覆蓋:對(duì)齊與填充 5.1.7 字符串和文本 5.1.8 位操作:編碼布爾值 ……第6章 超越基本的套接字編程第7章 揭密第8章 C++進(jìn)行套接字編程參考文獻(xiàn)
章節(jié)摘錄
一個(gè)程序怎樣通過網(wǎng)絡(luò)與另一個(gè)程序通信?本書的目標(biāo)是:在C編程語言的環(huán)境下,開始讓你理解這個(gè)問題的答案。長(zhǎng)時(shí)間以來,C都是實(shí)現(xiàn)網(wǎng)絡(luò)通信軟件所選的語言。的確,稱為套接字的API(applicationprogramminginterface,應(yīng)用程序編程接口)最初就是用C開發(fā)的?! 〔贿^,在深入研究套接字的細(xì)節(jié)之前,值得從總體上簡(jiǎn)要探討一下網(wǎng)絡(luò)和協(xié)議,看看我們的代碼將適合于應(yīng)用在什么位置。我們?cè)诒緯械哪繕?biāo)不是講授網(wǎng)絡(luò)和TCP/IP如何工作——有許多針對(duì)此目的的優(yōu)秀教材可以閱讀[1、3、10、15、17】,而是介紹一些基本的概念和術(shù)語?! ∮?jì)算機(jī)網(wǎng)絡(luò)由通過通信信道互連的機(jī)器組成。我們把這些機(jī)器稱為主機(jī)(host)和路由器(router)。主機(jī)是運(yùn)行應(yīng)用程序(比如Web瀏覽器、IM代理或文件共享程序)的計(jì)算機(jī)。主機(jī)上運(yùn)行的應(yīng)用程序是網(wǎng)絡(luò)的真正“用戶”。路由器也稱為網(wǎng)關(guān)(gateway),這種機(jī)器的職責(zé)是把信息從一條通信信道中繼或轉(zhuǎn)發(fā)(forward)到另一條通信信道。它們可能會(huì)運(yùn)行程序,但是通常不會(huì)運(yùn)行應(yīng)用程序。出于我們的目的,通信信道(communicationchannel)是把字節(jié)序列從一臺(tái)主機(jī)傳送到另一臺(tái)主機(jī)的工具;它可能是有線(例如,以太網(wǎng))、無線(例如,WiFi)或其他連接。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載