Windows Sockets網(wǎng)絡編程

出版時間:2012-8  出版社:機械工業(yè)出版社  作者:Bob Quinn,Dave Shute  譯者:徐磊,騰婧,張瑩,何慧  
Tag標簽:無  

內容概要

  《華章專業(yè)開發(fā)者叢書:Windows Sockets網(wǎng)絡編程》是Windows Sockets網(wǎng)絡編程領域公認的經典著作,由Windows Sockets 2.0規(guī)范解釋小組負責人親自執(zhí)筆,權威性毋庸置疑。它結合大量示例,對Windows Sockets規(guī)范進行了深刻地解讀,系統(tǒng)講解了Windows Sockets網(wǎng)絡編程及其相關的概念、原理、主要命令、操作模式,以及開發(fā)技巧和可能的陷阱,從程序員的角度給出了大量的建議和最佳實踐,是學習Windows Sockets網(wǎng)絡編程不可多得的參考書?! ∪珪譃槿糠郑旱谝徊糠郑ǖ?~6章),提供了翔實的背景知識和框架方面的概念,借助于此框架,讀者可理解WinSock的具體細節(jié),包括Windows Sockets概述、OSI網(wǎng)絡參考模型、TCP/IP協(xié)議簇中的協(xié)議和可用的服務、WinSock網(wǎng)絡應用程序的框架及其工作機制、WinSock的三種操作模式、socket通信機制等;第二部分(第7~12章),以FTP客戶端實例為基礎介紹了函數(shù)實例庫,還介紹了客戶端程序、服務器程序和DLL中間構件及它們的相應函數(shù),并涵蓋socket命令和選項及移植BSD Sockets相關事項等;第三部分(第13~17章),介紹了應用程序調試技術和工具,針對應用編程中的陷阱的建議和措施,WinSock API的多種操作系統(tǒng)平臺,WinSock規(guī)范的可選功能和WinSock規(guī)范2.0中的所有新功能。

作者簡介

作者:(美國)奎因(Bob Quinn) (美國)舒特(Dave Shute) 譯者:徐磊 騰婧 張瑩 何慧  奎因(Bob Quinn),WinSock 2.0規(guī)范解釋小組的負責人,Windows Sockets技術的開拓者之一,曾為WinSock規(guī)范1.1版本做出重要貢獻,從事TCP/IP網(wǎng)絡開發(fā)多年,經驗頗豐。 舒特(Dave Shute),Windows Sockets技術的先驅者和布道者,WinSock問世之初便與Bob一起服務于著名的FTP軟件公司,對WinSock技術和TCP/IP等網(wǎng)絡技術都有非常透徹的研究,實踐經驗極為豐富。

書籍目錄

譯者序 序 前言 第1章 Windows Sockets概述 1.1 什么是Windows Sockets 1.2 Windows Sockets的發(fā)展歷史 1.3 Windows Sockets的優(yōu)勢 1.3.1 Windows Sockets是一個開放的標準 1.3.2 Windows Sockets提供源代碼可移植性 1.3.3 Windows Sockets支持動態(tài)鏈接 1.3.4 Windows Sockets的優(yōu)點 1.4 Windows Sockets的前景 1.5 結論 第2章 Windows Sockets的概念 2.1 OSI網(wǎng)絡模型 2.2 WinSock網(wǎng)絡模型 2.2.1 信息與數(shù)據(jù) 2.2.2 應用協(xié)議 2.3 WinSock中的OSI層次 2.3.1 應用層 2.3.2 表示層 2.3.3 會話層 2.3.4 傳輸層 2.3.5 網(wǎng)絡層 2.3.6 數(shù)據(jù)鏈路層 2.3.7 物理層 2.4 模塊化的層次框 2.5 服務和協(xié)議 2.6 協(xié)議和API 第3章 TCP/IP協(xié)議服務 3.1 什么是TCP/IP 3.2 TCP/IP的發(fā)展歷史 3.3 傳輸服務 3.3.1 無連接的服務:UDP 3.3.2 面向連接的服務:TCP 3.3.3 傳輸協(xié)議的選擇:UDP與TCP的對比 3.4 網(wǎng)絡服務 3.4.1 IP服務 3.4.2 ICMP服務 3.5 支持協(xié)議和服務 3.5.1 域名服務 3.5.2 地址解析協(xié)議 3.5.3 其他支持協(xié)議 3.6 TCP/IP的發(fā)展前景 第4章 網(wǎng)絡應用程序工作機制 4.1 客戶端—服務器模型 4.2 網(wǎng)絡程序概覽 4.3 socket的打開 4.4 socket的命名 4.4.1 sockaddr結構 4.4.2 sockaddr_in結構 4.4.3 端口號 4.4.4 本地IP地址 4.4.5 什么是socket名稱 4.4.6 客戶端socket名稱是可選的 4.5 與另一個socket建立關聯(lián) 4.5.1 服務器如何準備建立關聯(lián) 4.5.2 客戶端如何發(fā)起一個關聯(lián) 4.5.3 服務器如何完成一個關聯(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解復用器中的關聯(lián) 4.7 socket的關閉 4.7.1 closesocket() 4.7.2 shutdown() 4.8 客戶端和服務器概覽 第5章 操作模式 5.1 什么是操作模式 5.1.1 不掛機,等待:阻塞 5.1.2 掛機后再撥:非阻塞 5.1.3 請求對方回撥:異步 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 阻塞操作中的超時 5.2.8 無最少接收限制值 5.2.9 代碼示例 5.3 非阻塞模式 5.3.1 怎樣使socket成為非阻塞的 5.3.2 成功與失敗不是絕對的 5.3.3 探詢而非阻塞 5.3.4 顯式地避讓 5.3.5 代碼示例 5.4 異步模式 5.4.1 認識異步函數(shù) 5.4.2 撤銷異步操作 5.4.3 代碼示例 5.4.4 AU_Time應用 5.5 性能比較 5.6 平臺比較 5.7 真正的阻塞 5.7.1 線程化的應用程序 5.7.2 其他適用性說明 第6章 socket狀態(tài) 6.1 什么是socket狀態(tài) 6.1.1 數(shù)據(jù)報socket的狀態(tài) 6.1.2 流socket的狀態(tài) 6.2 socket狀態(tài)的檢測方法 6.2.1 根據(jù)函數(shù)調用的成功或失敗檢測 6.2.2 同步檢測 6.2.3 異步檢測 6.3 WSAAsyncSelect() 6.3.1 WSAAsyncSelect()的工作原理 6.3.2 什么是WSAAsyncSelect()事件 6.3.3 避免機會丟失的窗口 6.3.4 什么是重使能函數(shù) 6.3.5 什么是通知消息 6.3.6 為函數(shù)失敗做好準備 6.3.7 在響應時設置循環(huán) 6.3.8 撤銷異步通知 6.3.9 事件描述 6.3.10 AS_Echo應用程序 6.4 select() 6.4.1 怎樣使用select() 6.4.2 select()的宏 6.4.3 select()的輸入?yún)?shù) 6.4.4 不要把select()作為定時器 6.4.5 注意0超時 6.4.6 代碼示例 6.5查看數(shù)據(jù) 6.5.1 ioctlsocket()FIONREAD命令 6.5.2 帶有MSG_PEEK標志的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章 應用程序和函數(shù)實例庫 7.1 FTP客戶端實例 7.1.1 文件傳輸協(xié)議概述 7.1.2 FTP有限狀態(tài)機 7.1.3 AC_FTP應用程序 7.1.4 操作中的AC_FTP 7.2 函數(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章 主機名稱與主機地址 8.1 主機名稱與主機地址解析 8.1.1 hostent結構 8.1.2 主機名稱解析 8.1.3 地址解析 8.2 主機表、域名系統(tǒng)和網(wǎng)絡信息服務 8.2.1 主機表 8.2.2 域名系統(tǒng) 8.2.3 網(wǎng)絡信息服務 8.3 本地主機信息 8.4 網(wǎng)絡地址與格式化 8.4.1 in_addr結構 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選項 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 不支持的選項 9.2.16 未來會使用的選項 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 啟動與清除 10.1.1 WSAStartup() 10.1.2 WSACleanup() 10.2 字節(jié)順序 10.3 服務名稱與端口號 10.3.1 servent結構 10.3.2 服務解析 10.3.3 端口解析 10.3.4 服務數(shù)據(jù)庫 10.4 協(xié)議名稱與協(xié)議號 10.4.1 protoent結構 10.4.2 協(xié)議名稱解析 10.4.3 協(xié)議號解析 10.4.4 協(xié)議數(shù)據(jù)庫 10.5 報錯 10.5.1 WSAGetLastError() 10.5.2 WSASetLastError() 10.5.3 錯誤文本顯示 第11章 WinSock上的DLL 11.1 創(chuàng)建一個新的API 11.1.1 仿真的API 11.1.2 應用協(xié)議API 11.1.3 封裝的WinSock API 11.2 DLL的問題 11.2.1 重入 11.2.2 任務管理 11.2.3 與WinSock DLL的鏈接 11.3 DLL實例 11.3.1 WSASimpl應用程序 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)場 12.2.216位Windows是非搶占式的 12.2.316位Windows文件系統(tǒng)不安全 12.2.416位Windows使用分段尋址 12.2.5 fork()不可用 12.3 移植Berkeley Sockets的其他事項 12.3.1 包含文件 12.3.2 socket域 12.3.3 socket類型 12.3.4 socket句柄 12.3.5 錯誤值 12.4 函數(shù)列表 …… 第13章 調試 第14章 該做和不該做的 第15章 系統(tǒng)平臺 第16章 可選特性 第17章 WinSock 2 附錄A TCP/IP協(xié)議首部 附錄B 快速參考 附錄C 錯誤信息參考 附錄D 用戶必備

章節(jié)摘錄

版權頁:   插圖:   顯然,2.0版本在1.1版本的基礎上更進了一大步,通過提高其可用性和擴展其范圍進一步鞏固了規(guī)范的現(xiàn)有地位。WinSock 2增加的眾多新功能使得API更加靈活和強大,當然,也使其復雜化了。幸運的是,它對于1.1版本的核心API的支持保持不變。 在本書中,我們重點關注WinSock 1.1版本的API,在第17章中將詳細講述WinSock 2中的一些有用的增補。其中,有些新的特性在WinSock 1.1的某些實現(xiàn)版本中是以選項的形式出現(xiàn)的。基于本書所提供的對WinSock 1.1的概念和方法的透徹講解,你將能夠更好地掌握和利用WinSock 2實現(xiàn)中的擴展新功能。 1.5 結論 Windows Sockets 是網(wǎng)絡應用開發(fā)舞臺上不可或缺的角色,它并不完美,在不同的實現(xiàn)版本中還存在一些問題,但是,在應用開發(fā)中避免這些差異帶來的問題是可能的。關鍵是采用防御性程序設計技術,規(guī)避規(guī)范中的模糊地帶。 在本書中,我們將向讀者展示,為了創(chuàng)建能在任何WinSock實現(xiàn)上成功運行的Windows Sockets應用,什么可做,什么不可做,分析在Windows環(huán)境(16位和(或)32位)下開發(fā)一個Win-Sock應用的需求。 Windows Sockets最初的承諾是:提供創(chuàng)建通用應用的能力。這一目標已經接近實現(xiàn),在進一步擴展其功能以實現(xiàn)新的承諾的同時,Windows Sockets將保留現(xiàn)有的API。WinSock API承諾將滿足新的網(wǎng)絡媒體和其他協(xié)議的需求,更不必說那些迄今為止尚未出現(xiàn)的一些全新網(wǎng)絡應用。 計算機正朝著移動的方向發(fā)展,WinSock也如是。由于帶寬在增加,網(wǎng)絡通道也越來越寬闊,WinSock將使帶寬的利用更加有效。Internet迫切地需要能提供導航、查找、易用的搜索功能的應用軟件,而WinSock正是幫助這類應用普及和提高的完美平臺。我們目前所觸及的還只是網(wǎng)絡多媒體分發(fā)的一些淺層應用。伴隨著更多的發(fā)現(xiàn),我們會看到WinSock大有用武之地。WinSock是一個讓技術貼近用戶的工具,它就像是引導者和推動者,已經為這個任重道遠的使命做好了準備。

編輯推薦

《Windows Sockets網(wǎng)絡編程》是Windows Sockets網(wǎng)絡編程領域公認的經典著作,由Windows Sockets 2.0規(guī)范解釋小組負責人親自執(zhí)筆,權威性毋庸置疑。它結合大量示例,對Windows Sockets規(guī)范進行了深刻地解讀,系統(tǒng)講解了Windows Sockets網(wǎng)絡編程及其相關的概念、原理、主要命令、操作模式,以及開發(fā)技巧和可能的陷阱,從程序員的角度給出了大量的建議和最佳實踐,是學習Windows Sockets網(wǎng)絡編程不可多得的參考書。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    Windows Sockets網(wǎng)絡編程 PDF格式下載


用戶評論 (總計8條)

 
 

  •   對WINSOCK1.1講得很透徹,希望掌握WINDOWS TCP/IP編程的可以買。唯一缺點是本書年代久遠,想必出版社能從書堆里把它找出來也是花了時間的。
  •   這本書并沒有想象的那么好,大多數(shù)講的是WinSock 1.1,也涉及了16位的許多操作(這些現(xiàn)在都用不著),講得并不是通俗易懂,但是拿來當參考手冊還行
  •   書還在學習中,對我來說有點深奧
  •   書不錯,就是還沒有怎么看,打算慢慢看的
  •   昨天才到的,里邊內容還不錯,windows socket編程,準備開學咯
  •   對概念講得很透徹,感覺挺好的。紙張質量也不錯,就是貴了點。。
  •   書內容很好,質量也不錯,最重要的是速度超快。
  •   有示例代碼……不過都是偽代碼……讓初學者很為難……
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7