譯者序
序
前言
第1章 Windows Sockets概述
1.1 什麼是Windows Sockets
1.2 Windows Sockets的發展曆史
1.3 Windows Sockets的優勢
1.3.1 Windows Sockets是一個開放的標準
1.3.2 Windows Sockets提供源代碼可移植性
1.3.3 Windows Sockets支持動態鏈接
1.3.4 Windows Sockets的優點
1.4 Windows Sockets的前景
1.5 結論
第2章 Windows Sockets的概念
2.1 OSI網絡模型
2.2 WinSock網絡模型
2.2.1 信息與數據
2.2.2 應用協議
2.3 WinSock中的OSI層次
2.3.1 應用層
2.3.2 錶示層
2.3.3 會話層
2.3.4 傳輸層
2.3.5 網絡層
2.3.6 數據鏈路層
2.3.7 物理層
2.4 模塊化的層次框
2.5 服務和協議
2.6 協議和API
第3章 TCP/IP協議服務
3.1 什麼是TCP/IP
3.2 TCP/IP的發展曆史
3.3 傳輸服務
3.3.1 無連接的服務:UDP
3.3.2 麵嚮連接的服務:TCP
3.3.3 傳輸協議的選擇:UDP與TCP的對比
3.4 網絡服務
3.4.1 IP服務
3.4.2 ICMP服務
3.5 支持協議和服務
3.5.1 域名服務
3.5.2 地址解析協議
3.5.3 其他支持協議
3.6 TCP/IP的發展前景
第4章 網絡應用程序工作機製
4.1 客戶端—服務器模型
4.2 網絡程序概覽
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建立關聯
4.5.1 服務器如何準備建立關聯
4.5.2 客戶端如何發起一個關聯
4.5.3 服務器如何完成一個關聯
4.6 socket之間的發送與接收
4.6.1 在“已連接的”socket上發送數據
4.6.2 在“無連接的”socket上發送數據
4.6.3 接收數據
4.6.4 socket解復用器中的關聯
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 阻塞函數
5.2.3 僞阻塞的問題
5.2.4 阻塞鈎子函數
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 認識異步函數
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狀態
6.1 什麼是socket狀態
6.1.1 數據報socket的狀態
6.1.2 流socket的狀態
6.2 socket狀態的檢測方法
6.2.1 根據函數調用的成功或失敗檢測
6.2.2 同步檢測
6.2.3 異步檢測
6.3 WSAAsyncSelect()
6.3.1 WSAAsyncSelect()的工作原理
6.3.2 什麼是WSAAsyncSelect()事件
6.3.3 避免機會丟失的窗口
6.3.4 什麼是重使能函數
6.3.5 什麼是通知消息
6.3.6 為函數失敗做好準備
6.3.7 在響應時設置循環
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()的輸入參數
6.4.4 不要把select()作為定時器
6.4.5 注意0超時
6.4.6 代碼示例
6.5查看數據
6.5.1 ioctlsocket()FIONREAD命令
6.5.2 帶有MSG_PEEK標誌的recv()
6.6 帶外數據
6.6.1 TCP的局限
6.6.2 ioctlsocket()函數和SIOCATMARK命令
6.6.3 代碼示例
6.7 監聽狀態
第7章 應用程序和函數實例庫
7.1 FTP客戶端實例
7.1.1 文件傳輸協議概述
7.1.2 FTP有限狀態機
7.1.3 AC_FTP應用程序
7.1.4 操作中的AC_FTP
7.2 函數實例庫
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 主機錶、域名係統和網絡信息服務
8.2.1 主機錶
8.2.2 域名係統
8.2.3 網絡信息服務
8.3 本地主機信息
8.4 網絡地址與格式化
8.4.1 in_addr結構
8.4.2 inet_addr()
8.4.3 inet_ntoa()
8.5 協議族與地址族
第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 阻塞鈎子函數
9.3.4 阻塞狀態
9.4 socket名稱
9.4.1 getsockname()
9.4.2 getpeemame()
第10章 支持例程
10.1 啓動與清除
10.1.1 WSAStartup()
10.1.2 WSACleanup()
10.2 字節順序
10.3 服務名稱與端口號
10.3.1 servent結構
10.3.2 服務解析
10.3.3 端口解析
10.3.4 服務數據庫
10.4 協議名稱與協議號
10.4.1 protoent結構
10.4.2 協議名稱解析
10.4.3 協議號解析
10.4.4 協議數據庫
10.5 報錯
10.5.1 WSAGetLastError()
10.5.2 WSASetLastError()
10.5.3 錯誤文本顯示
第11章 WinSock上的DLL
11.1 創建一個新的API
11.1.1 仿真的API
11.1.2 應用協議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 數據庫文件操作不可用
12.1.9 bcmp()、bcopy()和bzero()不可用
12.1.10 本地IPC不可用
12.1.11 OOB API不同
12.1.12 setsockopt()SO_DEBUG是可選的
12.2 16位Windows的局限性
12.2.116位Windows不清理現場
12.2.216位Windows是非搶占式的
12.2.316位Windows文件係統不安全
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 函數列錶
……
第13章 調試
第14章 該做和不該做的
第15章 係統平颱
第16章 可選特性
第17章 WinSock 2
附錄A TCP/IP協議首部
附錄B 快速參考
附錄C 錯誤信息參考
附錄D 用戶必備
· · · · · · (
收起)