目录
第一章 简介 11
-
什么是WINDOWS SOCKETS 规范? 11
-
BEKELEY 套接口 12
-
[MICROSOFT WINDOWS 和针对WINDOWS 的扩展
12](#microsoft-windows-和针对-windows-的扩展)
-
这份规范的地位 13
-
曾经作过的修改 13
-
Windows Sockets 1.0 13
-
Windows Sockets 1.1 13
第二章 使用 WINDOWS SOCKETS 1.1 编程
15
-
WINDOWS SOCKETS 协议栈安装检查 15
-
套接口 15
-
基本概念 15
-
客户机/服务器模型 16
-
带外数据 17
2.2.4 广播 18
-
字节顺序 18
-
套接口属性选项 19
-
数据库文件 20
-
与BERKELEY 套接口的不同 20
-
套接口数据类型和错误数值 21
-
select()函数和FD_*宏 21
-
错误代码-errno,h_errno,WSAGetLastError()
22
2.6.4 指针 23
-
重命名的函数 23
-
close()和 closesocket() 23
-
ioctl()和 iooctlsocket() 23
-
阻塞例程和EINPROGRESS 宏 23
-
[Windows Sockets 支持的最大套接口数目
24](#windows-sockets-支持的最大套接口数目)
-
头文件 24
-
API 调用失败时的返回值 24
-
原始套接口 25
- [在多线程WINDOWS 版本中的WINDOWS SOCKETS
25](#在多线程-windows-版本中的-windows-sockets)
第三章 WINDOWS SOCKETS 1.1 应用实例
26
-
套接口网络编程原理 26
-
WINDOWS SOCKETS 编程原理 28
-
[WINDOWS SOCKETS 与UNIX 套接口编程实例
29](#windows-sockets-与-unix-套接口编程实例)
-
SERVER 介绍 29
-
CLIENT 介绍 30
-
源程序清单 31
-
[另一个精巧的应用程序实例-WSHOUT
39](#另一个精巧的应用程序实例wshout)
-
源程序目录 39
-
程序逻辑结构 40
-
源程序清单及注释 40
-
wshout.c 清单 40
-
wshout.h 清单 56
-
wshout.rc 清单 59
-
ushout.c 清单 64
-
ulisten.c 清单 67
-
tshout.c 清单 71
-
tlisten.c 清单 74
-
errno.c 清单 79
-
resolve.c 清单 80
第四章 WINDOWS SOCKET 1.1 库函数概览
84
-
套接口函数 84
- 阻塞/非阻塞和数据易失性 85
-
数据库函数 86
-
针对MICROSOFT WINDOWS 的扩展函数
87
-
异步选择机制 88
-
异步支持例程 89
-
阻塞钩子函数方法 89
-
错误处理 89
-
通过中介DLL 调用Windows Sockets DLL
90
-
[Windows Sockets 实现内部对消息的使用
90](#windows-sockets-实现内部对消息的使用)
-
私有的API 接口 91
第五章 套接口库函数参考 92
-
WINDOWS SOCKET 1.1 库函数参考 92
- accept() 92
5.1.2 bind() 93
-
closesocket() 95
-
connect() 97
-
getpeername() 98
-
getsockname() 99
-
getsockopt() 100
5.1.8 htonl() 102
5.1.9 htons() 103
-
inet_addr() 103
-
inet_ntoa() 104
-
ioctlsocket() 105
-
listen() 107
5.1.14 ntohl() 108
5.1.15 ntohs() 108
5.1.16 recv() 109
-
recvfrom() 111
-
select() 113
5.1.19 send() 115
-
sendto() 116
-
setsockopt() 118
-
shutdown() 121
-
socket() 122
-
数据库函数 124
-
gethostbyaddr() 124
-
gethostbyname() 126
-
gethostname() 127
-
getprotobyname() 128
-
getprotobynumber() 129
-
getservbyname() 130
-
getservbyport() 131
-
WINDOWS 扩展函数 132
-
WSAAsyncGetHostByAddr() 132
-
WSAAsyncGetHostByName() 135
-
WSAAsyncGetProtoByName() 137
-
WSAAsyncGetProtoByNumber() 139
-
WSAAsyncGetServByName() 141
-
WSAAsyncGetServByPort() 144
-
WSAAsyncSelect() 146
-
WSACancelAsyncRequest() 151
-
WSACancelBlockingCall() 152
-
WSACleanup() 154
-
WSAGetLastError() 155
-
WSAIsBlocking() 156
-
WSASetBlockingHook() 157
-
WSASetLastError() 159
-
WSAStartup() 159
-
WSAUnhookBlockingHook() 164
第六章 WINDOWS SOCKET 2 的扩展特性
166
-
同时使用多个传输协议 166
-
与WINDOWS SOCKET 1.1 应用程序的向后兼容性
167
-
源码的兼容性 167
-
二进制兼容性 167
-
在WINDOWS SOCKETS 中注册传输协议
168
-
使用多个协议 169
-
[select()函数应用中关于多个服务提供者的限制
169](#select函数应用中关于多个服务提供者的限制)
-
协议无关的名字解析 170
-
重叠I/O 和事件对象 170
-
事件对象 171
-
接收操作完成指示 171
-
阻塞并且等待完成指示。 171
-
检查完成指示 172
-
使用套接口 I/O 操作完成例程
172
-
WSAOVERLAPPED 的细节 172
-
使用事件对象异步通知 173
-
服务的质量(QOS) 173
-
套接口组 175
-
共享套接口 175
-
连接建立和拆除的高级函数 176
-
扩展的字节顺序转换例程 177
-
分散/聚集方式I/O 177
-
协议无关的多点通讯 177
-
新增套接口选项一览 178
-
新增套接口IOCTL 操作代码 178
-
新增函数一览 180
第七章 WINDOWS SOCKETS 2 扩展库函数简要参考 182
-
WSAACCEPT() 182
-
WSACLOSEEVENT() 183
-
WSACONNECT() 184
-
WSACREATEEVENT() 186
-
WSADUPLICATESOCKET() 186
-
WSAENUMNETWORKEVENTS() 187
-
WSAENUMPROTOCOLS() 188
-
WSAEVENTSELECT() 189
-
WSAGETOVERLAPPEDRESULT() 191
-
WSAGETQOSBYNAME() 192
-
WSAHTONL() 192
-
WSAHTONS() 193
-
WSAIOCTL() 194
-
WSAJOINLEAF() 195
-
WSANTOHL() 196
-
WSANTOHS() 197
-
WSARECV() 198
-
WSARECVDISCONNECT() 199
-
WSARECVFROM() 200
-
WSARESETEVENT() 202
-
WSASEND() 202
-
WSASENDDISCONNECT() 204
-
WSASENDTO() 205
-
WSASETEVENT() 207
-
WSASOCKET() 207
-
WSAWAITFORMULTIPLEEVENTS() 209
附录 A 错误代码 211
附录 B WINDOWS SOCKETS 头文件 215
附录B.1 WINDOWS SOCKETS 1.1 头文件
215
附录B.2 WINDOWS SOCKETS 2 头文件
239
附录B.3 WINSOCK.DEF 文件 276
附录 C 参考文献 279