出版時(shí)間:2012-8 出版社:機(jī)械工業(yè)出版社 作者:Bob Quinn,Dave Shute 譯者:徐磊,騰婧,張瑩,何慧
Tag標(biāo)簽:無
內(nèi)容概要
《華章專業(yè)開發(fā)者叢書:Windows Sockets網(wǎng)絡(luò)編程》是Windows Sockets網(wǎng)絡(luò)編程領(lǐng)域公認(rèn)的經(jīng)典著作,由Windows Sockets 2.0規(guī)范解釋小組負(fù)責(zé)人親自執(zhí)筆,權(quán)威性毋庸置疑。它結(jié)合大量示例,對(duì)Windows Sockets規(guī)范進(jìn)行了深刻地解讀,系統(tǒng)講解了Windows Sockets網(wǎng)絡(luò)編程及其相關(guān)的概念、原理、主要命令、操作模式,以及開發(fā)技巧和可能的陷阱,從程序員的角度給出了大量的建議和最佳實(shí)踐,是學(xué)習(xí)Windows Sockets網(wǎng)絡(luò)編程不可多得的參考書?! ∪珪譃槿糠郑旱谝徊糠郑ǖ?~6章),提供了翔實(shí)的背景知識(shí)和框架方面的概念,借助于此框架,讀者可理解WinSock的具體細(xì)節(jié),包括Windows Sockets概述、OSI網(wǎng)絡(luò)參考模型、TCP/IP協(xié)議簇中的協(xié)議和可用的服務(wù)、WinSock網(wǎng)絡(luò)應(yīng)用程序的框架及其工作機(jī)制、WinSock的三種操作模式、socket通信機(jī)制等;第二部分(第7~12章),以FTP客戶端實(shí)例為基礎(chǔ)介紹了函數(shù)實(shí)例庫,還介紹了客戶端程序、服務(wù)器程序和DLL中間構(gòu)件及它們的相應(yīng)函數(shù),并涵蓋socket命令和選項(xiàng)及移植BSD Sockets相關(guān)事項(xiàng)等;第三部分(第13~17章),介紹了應(yīng)用程序調(diào)試技術(shù)和工具,針對(duì)應(yīng)用編程中的陷阱的建議和措施,WinSock API的多種操作系統(tǒng)平臺(tái),WinSock規(guī)范的可選功能和WinSock規(guī)范2.0中的所有新功能。
作者簡(jiǎn)介
作者:(美國(guó))奎因(Bob Quinn) (美國(guó))舒特(Dave Shute) 譯者:徐磊 騰婧 張瑩 何慧 奎因(Bob Quinn),WinSock 2.0規(guī)范解釋小組的負(fù)責(zé)人,Windows Sockets技術(shù)的開拓者之一,曾為WinSock規(guī)范1.1版本做出重要貢獻(xiàn),從事TCP/IP網(wǎng)絡(luò)開發(fā)多年,經(jīng)驗(yàn)頗豐。 舒特(Dave Shute),Windows Sockets技術(shù)的先驅(qū)者和布道者,WinSock問世之初便與Bob一起服務(wù)于著名的FTP軟件公司,對(duì)WinSock技術(shù)和TCP/IP等網(wǎng)絡(luò)技術(shù)都有非常透徹的研究,實(shí)踐經(jīng)驗(yàn)極為豐富。
書籍目錄
譯者序 序 前言 第1章 Windows Sockets概述 1.1 什么是Windows Sockets 1.2 Windows Sockets的發(fā)展歷史 1.3 Windows Sockets的優(yōu)勢(shì) 1.3.1 Windows Sockets是一個(gè)開放的標(biāo)準(zhǔn) 1.3.2 Windows Sockets提供源代碼可移植性 1.3.3 Windows Sockets支持動(dòng)態(tài)鏈接 1.3.4 Windows Sockets的優(yōu)點(diǎn) 1.4 Windows Sockets的前景 1.5 結(jié)論 第2章 Windows Sockets的概念 2.1 OSI網(wǎng)絡(luò)模型 2.2 WinSock網(wǎng)絡(luò)模型 2.2.1 信息與數(shù)據(jù) 2.2.2 應(yīng)用協(xié)議 2.3 WinSock中的OSI層次 2.3.1 應(yīng)用層 2.3.2 表示層 2.3.3 會(huì)話層 2.3.4 傳輸層 2.3.5 網(wǎng)絡(luò)層 2.3.6 數(shù)據(jù)鏈路層 2.3.7 物理層 2.4 模塊化的層次框 2.5 服務(wù)和協(xié)議 2.6 協(xié)議和API 第3章 TCP/IP協(xié)議服務(wù) 3.1 什么是TCP/IP 3.2 TCP/IP的發(fā)展歷史 3.3 傳輸服務(wù) 3.3.1 無連接的服務(wù):UDP 3.3.2 面向連接的服務(wù):TCP 3.3.3 傳輸協(xié)議的選擇:UDP與TCP的對(duì)比 3.4 網(wǎng)絡(luò)服務(wù) 3.4.1 IP服務(wù) 3.4.2 ICMP服務(wù) 3.5 支持協(xié)議和服務(wù) 3.5.1 域名服務(wù) 3.5.2 地址解析協(xié)議 3.5.3 其他支持協(xié)議 3.6 TCP/IP的發(fā)展前景 第4章 網(wǎng)絡(luò)應(yīng)用程序工作機(jī)制 4.1 客戶端—服務(wù)器模型 4.2 網(wǎng)絡(luò)程序概覽 4.3 socket的打開 4.4 socket的命名 4.4.1 sockaddr結(jié)構(gòu) 4.4.2 sockaddr_in結(jié)構(gòu) 4.4.3 端口號(hào) 4.4.4 本地IP地址 4.4.5 什么是socket名稱 4.4.6 客戶端socket名稱是可選的 4.5 與另一個(gè)socket建立關(guān)聯(lián) 4.5.1 服務(wù)器如何準(zhǔn)備建立關(guān)聯(lián) 4.5.2 客戶端如何發(fā)起一個(gè)關(guān)聯(lián) 4.5.3 服務(wù)器如何完成一個(gè)關(guān)聯(lián) 4.6 socket之間的發(fā)送與接收 4.6.1 在“已連接的”socket上發(fā)送數(shù)據(jù) 4.6.2 在“無連接的”socket上發(fā)送數(shù)據(jù) 4.6.3 接收數(shù)據(jù) 4.6.4 socket解復(fù)用器中的關(guān)聯(lián) 4.7 socket的關(guān)閉 4.7.1 closesocket() 4.7.2 shutdown() 4.8 客戶端和服務(wù)器概覽 第5章 操作模式 5.1 什么是操作模式 5.1.1 不掛機(jī),等待:阻塞 5.1.2 掛機(jī)后再撥:非阻塞 5.1.3 請(qǐng)求對(duì)方回?fù)埽寒惒?5.2 阻塞模式 5.2.1 阻塞socket 5.2.2 阻塞函數(shù) 5.2.3 偽阻塞的問題 5.2.4 阻塞鉤子函數(shù) 5.2.5 阻塞情境 5.2.6 撤銷阻塞操作 5.2.7 阻塞操作中的超時(shí) 5.2.8 無最少接收限制值 5.2.9 代碼示例 5.3 非阻塞模式 5.3.1 怎樣使socket成為非阻塞的 5.3.2 成功與失敗不是絕對(duì)的 5.3.3 探詢而非阻塞 5.3.4 顯式地避讓 5.3.5 代碼示例 5.4 異步模式 5.4.1 認(rèn)識(shí)異步函數(shù) 5.4.2 撤銷異步操作 5.4.3 代碼示例 5.4.4 AU_Time應(yīng)用 5.5 性能比較 5.6 平臺(tái)比較 5.7 真正的阻塞 5.7.1 線程化的應(yīng)用程序 5.7.2 其他適用性說明 第6章 socket狀態(tài) 6.1 什么是socket狀態(tài) 6.1.1 數(shù)據(jù)報(bào)socket的狀態(tài) 6.1.2 流socket的狀態(tài) 6.2 socket狀態(tài)的檢測(cè)方法 6.2.1 根據(jù)函數(shù)調(diào)用的成功或失敗檢測(cè) 6.2.2 同步檢測(cè) 6.2.3 異步檢測(cè) 6.3 WSAAsyncSelect() 6.3.1 WSAAsyncSelect()的工作原理 6.3.2 什么是WSAAsyncSelect()事件 6.3.3 避免機(jī)會(huì)丟失的窗口 6.3.4 什么是重使能函數(shù) 6.3.5 什么是通知消息 6.3.6 為函數(shù)失敗做好準(zhǔn)備 6.3.7 在響應(yīng)時(shí)設(shè)置循環(huán) 6.3.8 撤銷異步通知 6.3.9 事件描述 6.3.10 AS_Echo應(yīng)用程序 6.4 select() 6.4.1 怎樣使用select() 6.4.2 select()的宏 6.4.3 select()的輸入?yún)?shù) 6.4.4 不要把select()作為定時(shí)器 6.4.5 注意0超時(shí) 6.4.6 代碼示例 6.5查看數(shù)據(jù) 6.5.1 ioctlsocket()FIONREAD命令 6.5.2 帶有MSG_PEEK標(biāo)志的recv() 6.6 帶外數(shù)據(jù) 6.6.1 TCP的局限 6.6.2 ioctlsocket()函數(shù)和SIOCATMARK命令 6.6.3 代碼示例 6.7 監(jiān)聽狀態(tài) 第7章 應(yīng)用程序和函數(shù)實(shí)例庫 7.1 FTP客戶端實(shí)例 7.1.1 文件傳輸協(xié)議概述 7.1.2 FTP有限狀態(tài)機(jī) 7.1.3 AC_FTP應(yīng)用程序 7.1.4 操作中的AC_FTP 7.2 函數(shù)實(shí)例庫 7.2.1 CenterWnd() 7.2.2 CloseConn() 7.2.3 CreateLclFile() 7.2.4 Dlg_About() 7.2.5 GetAddr() 7.2.6 GetBuf() 7.2.7 GetHostID() 7.2.8 GetLclDir() 7.2.9 GetPort() 7.2.10 WSAErrStr() 7.2.11 WSAperror() 7.3 WinSockx.h 7.3.1 Globalsc 7.3.2 WSA_Xtra.h 第8章 主機(jī)名稱與主機(jī)地址 8.1 主機(jī)名稱與主機(jī)地址解析 8.1.1 hostent結(jié)構(gòu) 8.1.2 主機(jī)名稱解析 8.1.3 地址解析 8.2 主機(jī)表、域名系統(tǒng)和網(wǎng)絡(luò)信息服務(wù) 8.2.1 主機(jī)表 8.2.2 域名系統(tǒng) 8.2.3 網(wǎng)絡(luò)信息服務(wù) 8.3 本地主機(jī)信息 8.4 網(wǎng)絡(luò)地址與格式化 8.4.1 in_addr結(jié)構(gòu) 8.4.2 inet_addr() 8.4.3 inet_ntoa() 8.5 協(xié)議族與地址族 第9章 socket信息與控制 9.1 socket控制 9.1.1 FIONBIO 9.1.2 FIONREAD 9.1.3 SIOCATMARK 9.1.4 其他控制命令 9.2 socket選項(xiàng) 9.2.1 getsockopt()與setsockopt() 9.2.2 SO_ACCEPTCONN 9.2.3 SO_BROADCAST 9.2.4 SO_DEBUG 9.2.5 SO_DONTLINGER 9.2.6 SO_DONTROUTE 9.2.7 SO_ERROR 9.2.8 SO_KEEPALIVE 9.2.9 SO_LINGER 9.2.10 SO_OOBINLINE 9.2.11 SO_RCVBUF與SO_SNDBUF 9.2.12 SO_REUSEADDR 9.2.13 SO_TYPE 9.2.14 TCP_NODELAY 9.2.15 不支持的選項(xiàng) 9.2.16 未來會(huì)使用的選項(xiàng) 9.3 阻塞鉤子 9.3.1 WSASetBlockingHook() 9.3.2 WSAUnhookBlockingHook() 9.3.3 阻塞鉤子函數(shù) 9.3.4 阻塞狀態(tài) 9.4 socket名稱 9.4.1 getsockname() 9.4.2 getpeemame() 第10章 支持例程 10.1 啟動(dòng)與清除 10.1.1 WSAStartup() 10.1.2 WSACleanup() 10.2 字節(jié)順序 10.3 服務(wù)名稱與端口號(hào) 10.3.1 servent結(jié)構(gòu) 10.3.2 服務(wù)解析 10.3.3 端口解析 10.3.4 服務(wù)數(shù)據(jù)庫 10.4 協(xié)議名稱與協(xié)議號(hào) 10.4.1 protoent結(jié)構(gòu) 10.4.2 協(xié)議名稱解析 10.4.3 協(xié)議號(hào)解析 10.4.4 協(xié)議數(shù)據(jù)庫 10.5 報(bào)錯(cuò) 10.5.1 WSAGetLastError() 10.5.2 WSASetLastError() 10.5.3 錯(cuò)誤文本顯示 第11章 WinSock上的DLL 11.1 創(chuàng)建一個(gè)新的API 11.1.1 仿真的API 11.1.2 應(yīng)用協(xié)議API 11.1.3 封裝的WinSock API 11.2 DLL的問題 11.2.1 重入 11.2.2 任務(wù)管理 11.2.3 與WinSock DLL的鏈接 11.3 DLL實(shí)例 11.3.1 WSASimpl應(yīng)用程序 11.3.2 WSASimpl DLL 第12章 移植BSD Sockets 12.1 Windows Sockets與Berkeley Sockets的差異 12.1.1 socket不是文件句柄 12.1.2 signal()不可用 12.1.3 域名不可用 12.1.4 地址信息和操作不可用 12.1.5 syslog()不可用 12.1.6 變量errno不可用 12.1.7 perror()和strerror()不可用 12.1.8 數(shù)據(jù)庫文件操作不可用 12.1.9 bcmp()、bcopy()和bzero()不可用 12.1.10 本地IPC不可用 12.1.11 OOB API不同 12.1.12 setsockopt()SO_DEBUG是可選的 12.216位Windows的局限性 12.2.116位Windows不清理現(xiàn)場(chǎng) 12.2.216位Windows是非搶占式的 12.2.316位Windows文件系統(tǒng)不安全 12.2.416位Windows使用分段尋址 12.2.5 fork()不可用 12.3 移植Berkeley Sockets的其他事項(xiàng) 12.3.1 包含文件 12.3.2 socket域 12.3.3 socket類型 12.3.4 socket句柄 12.3.5 錯(cuò)誤值 12.4 函數(shù)列表 …… 第13章 調(diào)試 第14章 該做和不該做的 第15章 系統(tǒng)平臺(tái) 第16章 可選特性 第17章 WinSock 2 附錄A TCP/IP協(xié)議首部 附錄B 快速參考 附錄C 錯(cuò)誤信息參考 附錄D 用戶必備
章節(jié)摘錄
版權(quán)頁: 插圖: 顯然,2.0版本在1.1版本的基礎(chǔ)上更進(jìn)了一大步,通過提高其可用性和擴(kuò)展其范圍進(jìn)一步鞏固了規(guī)范的現(xiàn)有地位。WinSock 2增加的眾多新功能使得API更加靈活和強(qiáng)大,當(dāng)然,也使其復(fù)雜化了。幸運(yùn)的是,它對(duì)于1.1版本的核心API的支持保持不變。 在本書中,我們重點(diǎn)關(guān)注WinSock 1.1版本的API,在第17章中將詳細(xì)講述WinSock 2中的一些有用的增補(bǔ)。其中,有些新的特性在WinSock 1.1的某些實(shí)現(xiàn)版本中是以選項(xiàng)的形式出現(xiàn)的?;诒緯峁┑膶?duì)WinSock 1.1的概念和方法的透徹講解,你將能夠更好地掌握和利用WinSock 2實(shí)現(xiàn)中的擴(kuò)展新功能。 1.5 結(jié)論 Windows Sockets 是網(wǎng)絡(luò)應(yīng)用開發(fā)舞臺(tái)上不可或缺的角色,它并不完美,在不同的實(shí)現(xiàn)版本中還存在一些問題,但是,在應(yīng)用開發(fā)中避免這些差異帶來的問題是可能的。關(guān)鍵是采用防御性程序設(shè)計(jì)技術(shù),規(guī)避規(guī)范中的模糊地帶。 在本書中,我們將向讀者展示,為了創(chuàng)建能在任何WinSock實(shí)現(xiàn)上成功運(yùn)行的Windows Sockets應(yīng)用,什么可做,什么不可做,分析在Windows環(huán)境(16位和(或)32位)下開發(fā)一個(gè)Win-Sock應(yīng)用的需求。 Windows Sockets最初的承諾是:提供創(chuàng)建通用應(yīng)用的能力。這一目標(biāo)已經(jīng)接近實(shí)現(xiàn),在進(jìn)一步擴(kuò)展其功能以實(shí)現(xiàn)新的承諾的同時(shí),Windows Sockets將保留現(xiàn)有的API。WinSock API承諾將滿足新的網(wǎng)絡(luò)媒體和其他協(xié)議的需求,更不必說那些迄今為止尚未出現(xiàn)的一些全新網(wǎng)絡(luò)應(yīng)用。 計(jì)算機(jī)正朝著移動(dòng)的方向發(fā)展,WinSock也如是。由于帶寬在增加,網(wǎng)絡(luò)通道也越來越寬闊,WinSock將使帶寬的利用更加有效。Internet迫切地需要能提供導(dǎo)航、查找、易用的搜索功能的應(yīng)用軟件,而WinSock正是幫助這類應(yīng)用普及和提高的完美平臺(tái)。我們目前所觸及的還只是網(wǎng)絡(luò)多媒體分發(fā)的一些淺層應(yīng)用。伴隨著更多的發(fā)現(xiàn),我們會(huì)看到WinSock大有用武之地。WinSock是一個(gè)讓技術(shù)貼近用戶的工具,它就像是引導(dǎo)者和推動(dòng)者,已經(jīng)為這個(gè)任重道遠(yuǎn)的使命做好了準(zhǔn)備。
編輯推薦
《Windows Sockets網(wǎng)絡(luò)編程》是Windows Sockets網(wǎng)絡(luò)編程領(lǐng)域公認(rèn)的經(jīng)典著作,由Windows Sockets 2.0規(guī)范解釋小組負(fù)責(zé)人親自執(zhí)筆,權(quán)威性毋庸置疑。它結(jié)合大量示例,對(duì)Windows Sockets規(guī)范進(jìn)行了深刻地解讀,系統(tǒng)講解了Windows Sockets網(wǎng)絡(luò)編程及其相關(guān)的概念、原理、主要命令、操作模式,以及開發(fā)技巧和可能的陷阱,從程序員的角度給出了大量的建議和最佳實(shí)踐,是學(xué)習(xí)Windows Sockets網(wǎng)絡(luò)編程不可多得的參考書。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
Windows Sockets網(wǎng)絡(luò)編程 PDF格式下載