WSAEventSelect模型出现10053错误

fengogo 2008-07-22 04:22:46
if(NetworkEvents.lNetworkEvents & FD_CLOSE) // FD_CLOSE事件
{
if(NetworkEvents.iErrorCode[FD_CLOSE_BIT] != 0)
{
CString error;
error.Format(L"Close Error. Error code : %d\n",NetworkEvents.iErrorCode[FD_CLOSE_BIT]);
AfxMessageBox(error);
// return -1;
}
closesocket(sockAcceptArray[Index - WSA_WAIT_EVENT_0]); // 关闭socket
WSACloseEvent(EventArray[Index - WSA_WAIT_EVENT_0]); // 关闭事件

问题: 在客户端断开与服务器的连接后,服务器响应FD_CLOSE事件,执行以上代码时总是会有10053 WSAECONNABORTED 的错误. 关于该错误的说明,MSDN说是数据传输超时或协议错误? 但是我连接服务器,再马上断开,中间无数据传输,还是有该错误发生, 怎么回事?

...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengogo 2008-07-22
  • 打赏
  • 举报
回复
TO 3楼:
如何从FD_SET里面把关掉的socket去掉? 我现在的做法只是把sockAcceptArray数组( 一个我用来保存accept后的socket的数组) 里面已经关掉的socket删除掉(置0), 然后将EventArray数组里面的事件也删除掉(同样是置0).
scq2099yt 2008-07-22
  • 打赏
  • 举报
回复
up 1 floor
fengogo 2008-07-22
  • 打赏
  • 举报
回复
是影响不大,就是想知道一下原因. 客户端不是我写的, 不知道有没有shutdown, 如果没有调用这个函数,直接closesocket的话会出现以上错误?
回头我测试一下...
thirddata 2008-07-22
  • 打赏
  • 举报
回复
补充,关闭socket后,从你的FD_SET里面把你关掉的socket去掉
thirddata 2008-07-22
  • 打赏
  • 举报
回复
如果你的服务器是多线程,查查看是否有其他线程还在使用这个socket执行读写操作,select操作也会有这个错误
CodeProject-Jerry 2008-07-22
  • 打赏
  • 举报
回复
客户端是怎么断开的??

shutdown 没》?

这个错误忽略也应该影响不大吧。。。
第 1章 概述 1 1.1 网络编程相关的基本概念 1 1.1.1 网络编程与进程通信 1 1.1.2 Internet中网间进程的标识 3 1.1.3 网络协议的特征 7 1.2 三类网络编程 10 1.2.1 基于TCP/IP协议栈的网络编程 10 1.2.2 基于WWW应用的网络编程 10 1.2.3 基于.NET框架的Web Services网络编程 10 1.3 客户机/服务器交互模式 13 1.3.1 网络应用软件的地位和功能 13 1.3.2 客户机/服务器模式 14 1.3.3 客户机与服务器的特性 15 1.3.4 容易混淆的术语 16 1.3.5 客户机与服务器的通信过程 16 1.3.6 网络协议与C/S模式的关系 17 1.3.7 错综复杂的C/S交互 17 1.3.8 服务器如何同时为多个客户机服务 18 1.3.9 标识一个特定服务 20 1.4 P2P模式 21 1.4.1 P2P技术的兴起 21 1.4.2 P2P的定义和特征 21 1.4.3 P2P的发展 22 1.4.4 P2P的关键技术 22 1.4.5 P2P系统的应用与前景 22 习题 23 第 2章 套接字网络编程基础 24 2.1 套接字网络编程接口的产生与发展 24 2.1.1 问题的提出 24 2.1.2 套接字编程接口起源于UNIX操作系统 25 2.1.3 套接字编程接口在Windows和Linux操作系统中得到继承和发展 25 2.1.4 套接字编程接口的两种实现方式 25 2.1.5 套接字通信与UNIX操作系统的输入/输出的关系 26 2.2 套接字编程的基本概念 27 2.2.1 什么是套接字 27 2.2.2 套接字的特点 28 2.2.3 套接字的应用场合 30 2.2.4 套接字使用的数据类型和相关的问题 30 2.3 面向连接的套接字编程 32 2.3.1 可靠的传输控制协议 32 2.3.2 套接字的工作过程 33 2.3.3 面向连接的套接字编程实例 34 2.3.4 进程的阻塞问题和对策 40 2.4 无连接的套接字编程 43 2.4.1 高效的用户数据报协议 43 2.4.2 无连接的套接字编程的两种模式 43 2.4.3 数据报套接字的对等模式编程实例 45 2.5 原始套接字 47 2.5.1 原始套接字的创建 47 2.5.2 原始套接字的使用 48 2.5.3 原始套接字应用实例 49 习题 51 第3章 WinSock编程 53 3.1 WinSock概述 53 3.2 WinSock库函数 55 3.2.1 WinSock的注册与注销 55 3.2.2 WinSock的错误处理函数 58 3.2.3 主要的WinSock函数 61 3.2.4 WinSock的辅助函数 74 3.2.5 WinSock的信息查询函数 77 3.2.6 WSAAsyncGetXByY类型的扩展函数 79 3.3 网络应用程序的运行环境 82 习题 84 第4章 MFC编程 85 4.1 MFC概述 85 4.1.1 MFC是一个编程框架 85 4.1.2 典型的MDI应用程序的构成 87 4.2 MFC和Win32 89 4.2.1 MFC对象和Windows对象的关系 89 4.2.2 几个主要的类 91 4.3 CObject类 95 4.3.1 CObject类的定义 95 4.3.2 CObject类的特性 96 4.4 消息映射的实现 98 4.5 MFC对象的创建 102 4.5.1 MFC对象的关系 102 4.5.2 MFC提供的接口 104 4.5.3 MFC对象的创建过程 104 4.6 应用程序的退出 107 习题 107 第5章 MFC WinSock类的 编程 109 5.1 CAsyncSocket类 110 5.1.1 使用CAsyncSocket类的一般步骤 110 5.1.2 创建CAsyncSocket类对象 111 5.1.3 关于CAsyncSocket类可以接受并处理的消息事件 112 5.1.4 客户端套接字对象请求连接到服务器端套接字对象 114 5.1.5 服务器接收客户机的连接请求 115 5.1.6 发送与接收流式数据 116 5.1.7 关闭套接字 118 5.1.8 错误处理 118 5.1.9 其他成员函数 119 5.2 CSocket类 120 5.2.1 创建CSocket对象 120 5.2.2 建立连接 120 5.2.3 发送和接收数据 120 5.2.4 CSocket类、CArchive类和CSocketFile类 121 5.2.5 关闭套接字和清除相关的对象 122 5.3 CSocket类的编程模型 122 5.4 用CAsyncSocket类实现聊天室程序 123 5.4.1 实现目标 123 5.4.2 创建客户端应用程序 124 5.4.3 客户端程序的类与消息驱动 134 5.4.4 客户端程序主要功能的代码和分析 135 5.4.5 创建服务器端程序 142 5.4.6 服务器端程序的流程和消息驱动 144 5.4.7 点对点交谈的服务器端程序主要功能的代码和分析 145 5.5 用CSocket类实现聊天室程序 151 5.5.1 聊天室程序的功能 151 5.5.2 创建聊天室的服务器端程序 151 5.5.3 聊天室服务器端程序的主要实现代码和分析 154 5.5.4 创建聊天室的客户端程序 162 5.5.5 聊天室客户端程序的主要实现代码和分析 163 习题 170 实验 170 第6章 WinInet编程 172 6.1 MFC WinInet类 172 6.1.1 概述 172 6.1.2 MFC WinInet所包含的类 173 6.1.3 使用WinInet类编程的一般步骤 174 6.1.4 创建CInternetSession类对象 175 6.1.5 查询或设置Internet请求选项 176 6.1.6 创建连接类对象 177 6.1.7 使用文件检索类 178 6.1.8 重载OnStatusCallback函数 179 6.1.9 创建并使用网络文件类对象 180 6.1.10 CInternteException类 183 6.2 用MFC WinInet类实现FTP客户端 183 6.2.1 程序要实现的功能 183 6.2.2 创建应用程序的过程 184 习题 186 实验 187 第7章 WinSock的多线程 编程 188 7.1 WinSock为什么需要多线程编程 188 7.1.1 WinSock的两种I/O模式 188 7.1.2 两种模式的优缺点及解决方法 189 7.2 Win32操作系统下的多进程多线程机制 189 7.2.1 Win32 OS是单用户多任务的操作系统 189 7.2.2 Win32 OS是支持多线程的操作系统 190 7.2.3 多线程机制在网络编程中的应用 191 7.3 VC++对多线程网络编程的支持 192 7.3.1 MFC支持的两种线程 192 7.3.2 创建MFC的工作线程 193 7.3.3 创建并启动用户界面线程 195 7.3.4 终止线程 198 7.4 多线程FTP客户端实例 200 7.4.1 编写线程函数 200 7.4.2 添加事件处理函数 206 习题 208 第8章 WinSock的I/O模型 209 8.1 select模型 210 8.2 WSAAsyncSelect异步I/O模型 212 8.3 WSAEventSelect事件选择模型 216 8.4 重叠I/O模型 221 8.4.1 重叠I/O模型的优点 221 8.4.2 重叠I/O模型的基本原理 221 8.4.3 重叠I/O模型的关键函数和数据结构 222 8.4.4 使用事件通知实现重叠模型的步骤 225 8.4.5 使用完成例程实现重叠模型的步骤 227 8.5 完成端口模型 229 8.5.1 什么是完成端口模型 229 8.5.2 使用完成端口模型的方法 230 习题 238 第9章 HTTP及编程 239 9.1 HTTP 239 9.1.1 HTTP的背景 239 9.1.2 HTTP的内容 240 9.1.3 HTTP消息的一般格式 242 9.1.4 HTTP请求的格式 243 9.1.5 HTTP响应的格式 245 9.1.6 访问认证 248 9.1.7 URL编码 249 9.1.8 HTTP的应用 250 9.2 利用CHtmlView类创建Web浏览器型的应用程序 250 9.2.1 CHtmlView类与WebBrowser控件 250 9.2.2 CHtmlView类的成员函数 251 9.2.3 创建一个Web浏览器型的应用程序的一般步骤 256 9.3 Web浏览器应用程序实例 261 9.3.1 程序实现的目标 261 9.3.2 创建实例程序 262 习题 265 实验 265 第 10章 电子邮件协议与编程 267 10.1 电子邮件系统的工作原理 267 10.1.1 电子邮件的特点 267 10.1.2 电子邮件系统的构成 267 10.1.3 电子邮件系统的实现 268 10.2 简单邮件传送协议 270 10.2.1 概述 270 10.2.2 SMTP客户机与SMTP服务器之间的会话 270 10.2.3 常用的SMTP命令 271 10.2.4 常用的SMTP响应码 273 10.2.5 SMTP的会话过程 274 10.2.6 使用WinSock来实现电子邮件客户机与服务器的会话 274 10.3 电子邮件信件结构详述 275 10.3.1 Internet文本信件的格式标准——RFC 822 275 10.3.2 信件的头部 276 10.3.3 构造和分析符合RFC 822标准的电子信件 281 10.4 MIME编码解码与发送附件 281 10.4.1 MIME概述 281 10.4.2 MIME定义的新的信头字段 282 10.4.3 MIME邮件的内容类型 283 10.4.4 MIME邮件的编码方式 292 10.5 POP3与接收电子邮件 294 10.5.1 POP3 294 10.5.2 POP3的会话过程 294 10.5.3 POP3会话的3个状态 295 10.5.4 POP3标准命令 296 10.5.5 接收电子邮件的一般步骤 298 10.6 接收电子邮件的程序实例 299 10.6.1 实例程序的目的和实现的技术要点 299 10.6.2 创建应用程序的过程 301 10.7 发送电子邮件的程序实例 302 10.7.1 实例程序的目的和实现的技术要点 302 10.7.2 创建应用程序的过程 303 习题 305 参考文献 307
第一部分 传统网络API 第1章 NetBIOS 1 1.1 Microsoft NetBIOS 2 1.1.1 LANA编号 2 1.1.2 NetBIOS名字 4 1.1.3 NetBIOS特性 6 1.2 NetBIOS编程基础 7 1.3 常规NetBIOS例程 8 1.3.1 会话服务器:异步回调模型 15 1.3.2 会话服务器:异步事件模型 20 1.3.3 NetBIOS会话客户机 24 1.4 数据报的工作原理 28 1.5 其他NetBIOS命令 40 1.5.1 适配器状态 40 1.5.2 查找名字 42 1.5.3 将传送协议同LANA编号对应起来 43 1.6 平台问题 43 1.6.1 Windows CE 44 1.6.2 Windows 9x 44 1.6.3 常规问题 44 1.7 小结 44 第2章 重定向器 45 2.1 通用命名规范 45 2.2 多UNC提供者 47 2.3 网络提供者 47 2.4 重定向器简介 48 2.5 服务器消息块 48 2.6 安全问题 49 2.6.1 安全描述符 49 2.6.2 访问令牌 51 2.7 网络安全 51 2.8 一个实例 52 2.9 小结 53 第3章 邮槽 54 3.1 邮槽实施细节 54 3.1.1 邮槽的名字 54 3.1.2 消息的长度 55 3.1.3 应用程序的编译 56 3.1.4 错误代码 57 3.2 基本客户机/服务器 57 3.2.1 邮槽服务器的详情 57 3.2.2 邮槽客户机的详情 59 3.3 其他邮槽API 61 3.4 平台和性能问题 62 3.4.1 8.3字符名字限制 62 3.4.2 不能取消“凝结”的I/O请求 62 3.4.3 超时引起的内存废弃 64 3.5 小结 65 第4章 命名管道 66 4.1 命名管道的实施细节 66 4.1.1 命名管道命名规范 67 4.1.2 字节模式及消息模式 67 4.1.3 应用程序的编译 67 4.1.4 错误代码 68 4.2 客户机与服务器的基础 68 4.2.1 服务器的细节 68 4.2.2 高级服务器的细节 74 4.2.3 客户机的细节 81 4.3 其他API调用 83 4.4 平台和性能问题 86 4.5 小结 87 第二部分 Winsock API 第5章 网络原理和协议 89 5.1 协议的特征 89 5.1.1 面向消息 89 5.1.2 面向连接和无连接 91 5.1.3 可靠性和次序性 91 5.1.4 从容关闭 92 5.1.5 广播数据 92 5.1.6 多播数据 92 5.1.7 服务质量 92 5.1.8 部分消息 93 5.1.9 路由选择的考虑 93 5.1.10 其他特征 93 5.2 支持的协议 93 5.2.1 支持的Win32网络协议 93 5.2.2 Windows CE网络协议 94 5.3 Winsock 2协议信息 94 5.4 Windows套接字 97 5.5 具体平台的问题 99 5.6 选择适当的协议 100 5.7 小结 100 第6章 地址家族和名字解析 102 6.1 IP 102 6.1.1 TCP 102 6.1.2 UDP 102 6.1.3 定址 102 6.1.4 创建套接字 105 6.1.5 名字解析 105 6.2 红外线套接字 107 6.2.1 定址 107 6.2.2 名字解析 108 6.2.3 红外线设备列举 108 6.2.4 查询IAS 110 6.2.5 创建套接字 111 6.2.6 套接字选项 112 6.3 IPX/SPX 112 6.3.1 编址 112 6.3.2 创建套接字 112 6.4 NetBIOS 115 6.4.1 定址 115 6.4.2 创建套接字 116 6.5 AppleTalk 117 6.5.1 定址 117 6.5.2 AppleTalk名的注册 118 6.5.3 AppleTalk名的解析 119 6.5.4 创建套接字 124 6.6 ATM 124 6.6.1 定址 125 6.6.2 创建套接字 128 6.6.3 把套接字和SAP绑定在一起 129 6.6.4 名字解析 130 6.7 Winsock 2支持的其他函数 130 6.8 小结 131 第7章 Winsock基础 132 7.1 Winsock的初始化 132 7.2 错误检查和控制 134 7.3 面向连接的协议 134 7.3.1 服务器API函数 134 7.3.2 客户机API函数 138 7.3.3 数据传输 140 7.3.4 流协议 144 7.3.5 中断连接 146 7.3.6 综合分析 147 7.4 无连接协议 155 7.4.1 接收端 155 7.4.2 发送端 156 7.4.3 基于消息的协议 157 7.4.4 释放套接字资源 158 7.4.5 综合分析 158 7.5 其他API函数 165 7.6 Windows CE 168 7.7 其他地址家族 169 7.7.1 AppleTalk 169 7.7.2 IrDA 169 7.7.3 NetBIOS 170 7.7.4 IPX/SPX 170 7.7.5 ATM 171 7.8 小结 171 第8章 Winsock I/O方法 172 8.1 套接字模式 172 8.1.1 锁定模式 173 8.1.2 非锁定模式 175 8.2 套接字I/O模型 176 8.2.1 select模型 176 8.2.2 WSAAsyncSelect 179 8.2.3 WSAEventSelect 183 8.2.4 重叠模型 188 8.2.5 完成端口模型 198 8.3 I/O模型的问题 206 8.4 小结 206 第9章 套接字选项和I/O控制命令 207 9.1 套接字选项 207 9.1.1 SOL_SOCKET选项级别 208 9.1.2 SOL_APPLETALK选项级别 215 9.1.3 SOL_IRLMP选项级别 218 9.1.4 IPPROTO_IP选项级 222 9.1.5 IPPROTO_TCP选项级别 227 9.1.6 NSPROTO_IPX选项级别 227 9.2 IOCTLSOCKET和WSAIOCTL 231 9.2.1 标准I/O控制命令 232 9.2.2 其他I/O控制命令 233 9.2.3 安全套接字层的I/O控制命令 239 9.2.4 ATM I/O控制命令 241 9.3 小结 242 第10章 名字注册和解析 243 10.1 背景知识 243 10.2 名字空间模型 243 10.3 服务的注册 245 10.3.1 安装服务类 245 10.3.2 服务的注册 248 10.3.3 服务注册示例 251 10.4 服务的查询 254 10.4.1 怎样对服务进行查询 255 10.4.2 查询DNS 257 10.5 小结 260 第11章 多播 261 11.1 多播的含义 261 11.2 IP多播 264 11.2.1 Internet网关管理协议 264 11.2.2 IP叶节点 265 11.2.3 IP多播的实施 266 11.3 ATM多播 266 11.3.1 ATM叶节点 267 11.3.2 ATM根节点 267 11.4 多播与Winsock 268 11.4.1 Winsock 1多播 268 11.4.2 Winsock 2多播 274 11.4.3 常用的Winsock选项 288 11.4.4 拨号网络多播的一处限制 290 11.5 小结 291 第12章 常规服务质量 292 12.1 背景知识 292 12.1.1 资源预约协议 292 12.1.2 网络组件 293 12.1.3 应用组件 294 12.1.4 策略组件 296 12.2 QoS和Winsock 296 12.2.1 QoS结构 297 12.2.2 QoS调用函数 299 12.3 QoS中止 303 12.4 QoS编程 311 12.4.1 RSVP和套接字类型 312 12.4.2 QoS通知 314 12.4.3 QoS模板 316 12.5 示例 318 12.5.1 单播TCP 318 12.5.2 单播UDP 336 12.5.3 多播UDP 337 12.6 ATM和QoS 338 12.7 小结 339 第13章 原始套接字 340 13.1 原始套接字的创建 340 13.2 Internet控制消息协议 341 13.2.1 Ping示例 342 13.2.2 Traceroute示例 351 13.3 Internet组管理协议 352 13.4 IP_HDRINCL的使用 354 13.5 小结 362 第14章 Winsock 2服务提供者接口 363 14.1 SPI基础 363 14.1.1 SPI命名规则 364 14.1.2 Winsock 2 API和SPI函数之间的映 射 364 14.2 传输服务提供者 364 14.2.1 WSPStartup 365 14.2.2 参数 366 14.2.3 实例计数 369 14.2.4 套接字句柄 369 14.2.5 Winsock I/O模型支持 371 14.2.6 扩展函数 380 14.2.7 传输服务提供者的安装 381 14.3 命名空间服务提供者 386 14.3.1 名字空间的安装 386 14.3.2 名字空间的实施 387 14.3.3 名字空间提供者示范 392 14.4 Winsock SPI函数的调试追踪 396 14.5 小结 396 第15章 微软Visual Basic Winsock控件 397 15.1 属性 397 15.2 方法 398 15.3 事件 399 15.4 UDP示例 400 15.4.1 UDP消息的发送 403 15.4.2 UDP消息的接收 404 15.4.3 获取Winsock信息 404 15.4.4 运行UDP示例 405 15.4.5 UDP状态 405 15.5 TCP示例 406 15.5.1 TCP服务器 412 15.5.2 TCP客户机 413 15.5.3 获取Winsock信息 414 15.5.4 运行TCP示例 414 15.5.5 TCP状态 415 15.6 存在的局限 415 15.7 常见错误 416 15.8 Windows CE的Winsock控件 417 15.8.1 Windows CE Winsock示例 417 15.8.2 已知的问题 421 15.9 小结 422 第三部分 远程访问服务 第16章 RAS客户机 423 16.1 编译和链接 424 16.2 数据结构和平台兼容问题 424 16.3 DUN 1.3升级和Windows 95 425 16.4 RASDIAL 425 16.4.1 同步模式 427 16.4.2 异步模式 428 16.4.3 状态通知 432 16.4.4 关闭连接 432 16.5 电话簿 433 16.5.1 电话簿条目的增添 440 16.5.2 电话簿条目的重命名 442 16.5.3 电话簿条目的删除 442 16.5.4 电话簿条目的列举 443 16.5.5 用户凭据的管理 443 16.5.6 多链接电话簿的子条目 445 16.6 连接管理 446 16.7 小结 450 第四部分 附录录录 附录A NetBIOS命令索引 451 附录B IP助手函数 464 附录C Winsock错误代码 481
第一部分 传统网络API 第1章 NetBIOS 1 1.1 Microsoft NetBIOS 2 1.1.1 LANA编号 2 1.1.2 NetBIOS名字 4 1.1.3 NetBIOS特性 6 1.2 NetBIOS编程基础 7 1.3 常规NetBIOS例程 8 1.3.1 会话服务器:异步回调模型 15 1.3.2 会话服务器:异步事件模型 20 1.3.3 NetBIOS会话客户机 24 1.4 数据报的工作原理 28 1.5 其他NetBIOS命令 40 1.5.1 适配器状态 40 1.5.2 查找名字 42 1.5.3 将传送协议同LANA编号对应起来 43 1.6 平台问题 43 1.6.1 Windows CE 44 1.6.2 Windows 9x 44 1.6.3 常规问题 44 1.7 小结 44 第2章 重定向器 45 2.1 通用命名规范 45 2.2 多UNC提供者 47 2.3 网络提供者 47 2.4 重定向器简介 48 2.5 服务器消息块 48 2.6 安全问题 49 2.6.1 安全描述符 49 2.6.2 访问令牌 51 2.7 网络安全 51 2.8 一个实例 52 2.9 小结 53 第3章 邮槽 54 3.1 邮槽实施细节 54 3.1.1 邮槽的名字 54 3.1.2 消息的长度 55 3.1.3 应用程序的编译 56 3.1.4 错误代码 57 3.2 基本客户机/服务器 57 3.2.1 邮槽服务器的详情 57 3.2.2 邮槽客户机的详情 59 3.3 其他邮槽API 61 3.4 平台和性能问题 62 3.4.1 8.3字符名字限制 62 3.4.2 不能取消“凝结”的I/O请求 62 3.4.3 超时引起的内存废弃 64 3.5 小结 65 第4章 命名管道 66 4.1 命名管道的实施细节 66 4.1.1 命名管道命名规范 67 4.1.2 字节模式及消息模式 67 4.1.3 应用程序的编译 67 4.1.4 错误代码 68 4.2 客户机与服务器的基础 68 4.2.1 服务器的细节 68 4.2.2 高级服务器的细节 74 4.2.3 客户机的细节 81 4.3 其他API调用 83 4.4 平台和性能问题 86 4.5 小结 87 第二部分 Winsock API 第5章 网络原理和协议 89 5.1 协议的特征 89 5.1.1 面向消息 89 5.1.2 面向连接和无连接 91 5.1.3 可靠性和次序性 91 5.1.4 从容关闭 92 5.1.5 广播数据 92 5.1.6 多播数据 92 5.1.7 服务质量 92 5.1.8 部分消息 93 5.1.9 路由选择的考虑 93 5.1.10 其他特征 93 5.2 支持的协议 93 5.2.1 支持的Win32网络协议 93 5.2.2 Windows CE网络协议 94 5.3 Winsock 2协议信息 94 5.4 Windows套接字 97 5.5 具体平台的问题 99 5.6 选择适当的协议 100 5.7 小结 100 第6章 地址家族和名字解析 102 6.1 IP 102 6.1.1 TCP 102 6.1.2 UDP 102 6.1.3 定址 102 6.1.4 创建套接字 105 6.1.5 名字解析 105 6.2 红外线套接字 107 6.2.1 定址 107 6.2.2 名字解析 108 6.2.3 红外线设备列举 108 6.2.4 查询IAS 110 6.2.5 创建套接字 111 6.2.6 套接字选项 112 6.3 IPX/SPX 112 6.3.1 编址 112 6.3.2 创建套接字 112 6.4 NetBIOS 115 6.4.1 定址 115 6.4.2 创建套接字 116 6.5 AppleTalk 117 6.5.1 定址 117 6.5.2 AppleTalk名的注册 118 6.5.3 AppleTalk名的解析 119 6.5.4 创建套接字 124 6.6 ATM 124 6.6.1 定址 125 6.6.2 创建套接字 128 6.6.3 把套接字和SAP绑定在一起 129 6.6.4 名字解析 130 6.7 Winsock 2支持的其他函数 130 6.8 小结 131 第7章 Winsock基础 132 7.1 Winsock的初始化 132 7.2 错误检查和控制 134 7.3 面向连接的协议 134 7.3.1 服务器API函数 134 7.3.2 客户机API函数 138 7.3.3 数据传输 140 7.3.4 流协议 144 7.3.5 中断连接 146 7.3.6 综合分析 147 7.4 无连接协议 155 7.4.1 接收端 155 7.4.2 发送端 156 7.4.3 基于消息的协议 157 7.4.4 释放套接字资源 158 7.4.5 综合分析 158 7.5 其他API函数 165 7.6 Windows CE 168 7.7 其他地址家族 169 7.7.1 AppleTalk 169 7.7.2 IrDA 169 7.7.3 NetBIOS 170 7.7.4 IPX/SPX 170 7.7.5 ATM 171 7.8 小结 171 第8章 Winsock I/O方法 172 8.1 套接字模式 172 8.1.1 锁定模式 173 8.1.2 非锁定模式 175 8.2 套接字I/O模型 176 8.2.1 select模型 176 8.2.2 WSAAsyncSelect 179 8.2.3 WSAEventSelect 183 8.2.4 重叠模型 188 8.2.5 完成端口模型 198 8.3 I/O模型的问题 206 8.4 小结 206 第9章 套接字选项和I/O控制命令 207 9.1 套接字选项 207 9.1.1 SOL_SOCKET选项级别 208 9.1.2 SOL_APPLETALK选项级别 215 9.1.3 SOL_IRLMP选项级别 218 9.1.4 IPPROTO_IP选项级 222 9.1.5 IPPROTO_TCP选项级别 227 9.1.6 NSPROTO_IPX选项级别 227 9.2 IOCTLSOCKET和WSAIOCTL 231 9.2.1 标准I/O控制命令 232 9.2.2 其他I/O控制命令 233 9.2.3 安全套接字层的I/O控制命令 239 9.2.4 ATM I/O控制命令 241 9.3 小结 242 第10章 名字注册和解析 243 10.1 背景知识 243 10.2 名字空间模型 243 10.3 服务的注册 245 10.3.1 安装服务类 245 10.3.2 服务的注册 248 10.3.3 服务注册示例 251 10.4 服务的查询 254 10.4.1 怎样对服务进行查询 255 10.4.2 查询DNS 257 10.5 小结 260 第11章 多播 261 11.1 多播的含义 261 11.2 IP多播 264 11.2.1 Internet网关管理协议 264 11.2.2 IP叶节点 265 11.2.3 IP多播的实施 266 11.3 ATM多播 266 11.3.1 ATM叶节点 267 11.3.2 ATM根节点 267 11.4 多播与Winsock 268 11.4.1 Winsock 1多播 268 11.4.2 Winsock 2多播 274 11.4.3 常用的Winsock选项 288 11.4.4 拨号网络多播的一处限制 290 11.5 小结 291 第12章 常规服务质量 292 12.1 背景知识 292 12.1.1 资源预约协议 292 12.1.2 网络组件 293 12.1.3 应用组件 294 12.1.4 策略组件 296 12.2 QoS和Winsock 296 12.2.1 QoS结构 297 12.2.2 QoS调用函数 299 12.3 QoS中止 303 12.4 QoS编程 311 12.4.1 RSVP和套接字类型 312 12.4.2 QoS通知 314 12.4.3 QoS模板 316 12.5 示例 318 12.5.1 单播TCP 318 12.5.2 单播UDP 336 12.5.3 多播UDP 337 12.6 ATM和QoS 338 12.7 小结 339 第13章 原始套接字 340 13.1 原始套接字的创建 340 13.2 Internet控制消息协议 341 13.2.1 Ping示例 342 13.2.2 Traceroute示例 351 13.3 Internet组管理协议 352 13.4 IP_HDRINCL的使用 354 13.5 小结 362 第14章 Winsock 2服务提供者接口 363 14.1 SPI基础 363 14.1.1 SPI命名规则 364 14.1.2 Winsock 2 API和SPI函数之间的映 射 364 14.2 传输服务提供者 364 14.2.1 WSPStartup 365 14.2.2 参数 366 14.2.3 实例计数 369 14.2.4 套接字句柄 369 14.2.5 Winsock I/O模型支持 371 14.2.6 扩展函数 380 14.2.7 传输服务提供者的安装 381 14.3 命名空间服务提供者 386 14.3.1 名字空间的安装 386 14.3.2 名字空间的实施 387 14.3.3 名字空间提供者示范 392 14.4 Winsock SPI函数的调试追踪 396 14.5 小结 396 第15章 微软Visual Basic Winsock控件 397 15.1 属性 397 15.2 方法 398 15.3 事件 399 15.4 UDP示例 400 15.4.1 UDP消息的发送 403 15.4.2 UDP消息的接收 404 15.4.3 获取Winsock信息 404 15.4.4 运行UDP示例 405 15.4.5 UDP状态 405 15.5 TCP示例 406 15.5.1 TCP服务器 412 15.5.2 TCP客户机 413 15.5.3 获取Winsock信息 414 15.5.4 运行TCP示例 414 15.5.5 TCP状态 415 15.6 存在的局限 415 15.7 常见错误 416 15.8 Windows CE的Winsock控件 417 15.8.1 Windows CE Winsock示例 417 15.8.2 已知的问题 421 15.9 小结 422 第三部分 远程访问服务 第16章 RAS客户机 423 16.1 编译和链接 424 16.2 数据结构和平台兼容问题 424 16.3 DUN 1.3升级和Windows 95 425 16.4 RASDIAL 425 16.4.1 同步模式 427 16.4.2 异步模式 428 16.4.3 状态通知 432 16.4.4 关闭连接 432 16.5 电话簿 433 16.5.1 电话簿条目的增添 440 16.5.2 电话簿条目的重命名 442 16.5.3 电话簿条目的删除 442 16.5.4 电话簿条目的列举 443 16.5.5 用户凭据的管理 443 16.5.6 多链接电话簿的子条目 445 16.6 连接管理 446 16.7 小结 450 第四部分 附录录录 附录A NetBIOS命令索引 451 附录B IP助手函数 464 附录C Winsock错误代码 481
第一部分 传统网络API 第1章 NetBIOS 1 1.1 Microsoft NetBIOS 2 1.1.1 LANA编号 2 1.1.2 NetBIOS名字 4 1.1.3 NetBIOS特性 6 1.2 NetBIOS编程基础 7 1.3 常规NetBIOS例程 8 1.3.1 会话服务器:异步回调模型 15 1.3.2 会话服务器:异步事件模型 20 1.3.3 NetBIOS会话客户机 24 1.4 数据报的工作原理 28 1.5 其他NetBIOS命令 40 1.5.1 适配器状态 40 1.5.2 查找名字 42 1.5.3 将传送协议同LANA编号对应起来 43 1.6 平台问题 43 1.6.1 Windows CE 44 1.6.2 Windows 9x 44 1.6.3 常规问题 44 1.7 小结 44 第2章 重定向器 45 2.1 通用命名规范 45 2.2 多UNC提供者 47 2.3 网络提供者 47 2.4 重定向器简介 48 2.5 服务器消息块 48 2.6 安全问题 49 2.6.1 安全描述符 49 2.6.2 访问令牌 51 2.7 网络安全 51 2.8 一个实例 52 2.9 小结 53 第3章 邮槽 54 3.1 邮槽实施细节 54 3.1.1 邮槽的名字 54 3.1.2 消息的长度 55 3.1.3 应用程序的编译 56 3.1.4 错误代码 57 3.2 基本客户机/服务器 57 3.2.1 邮槽服务器的详情 57 3.2.2 邮槽客户机的详情 59 3.3 其他邮槽API 61 3.4 平台和性能问题 62 3.4.1 8.3字符名字限制 62 3.4.2 不能取消“凝结”的I/O请求 62 3.4.3 超时引起的内存废弃 64 3.5 小结 65 第4章 命名管道 66 4.1 命名管道的实施细节 66 4.1.1 命名管道命名规范 67 4.1.2 字节模式及消息模式 67 4.1.3 应用程序的编译 67 4.1.4 错误代码 68 4.2 客户机与服务器的基础 68 4.2.1 服务器的细节 68 4.2.2 高级服务器的细节 74 4.2.3 客户机的细节 81 4.3 其他API调用 83 4.4 平台和性能问题 86 4.5 小结 87 第二部分 Winsock API 第5章 网络原理和协议 89 5.1 协议的特征 89 5.1.1 面向消息 89 5.1.2 面向连接和无连接 91 5.1.3 可靠性和次序性 91 5.1.4 从容关闭 92 5.1.5 广播数据 92 5.1.6 多播数据 92 5.1.7 服务质量 92 5.1.8 部分消息 93 5.1.9 路由选择的考虑 93 5.1.10 其他特征 93 5.2 支持的协议 93 5.2.1 支持的Win32网络协议 93 5.2.2 Windows CE网络协议 94 5.3 Winsock 2协议信息 94 5.4 Windows套接字 97 5.5 具体平台的问题 99 5.6 选择适当的协议 100 5.7 小结 100 第6章 地址家族和名字解析 102 6.1 IP 102 6.1.1 TCP 102 6.1.2 UDP 102 6.1.3 定址 102 6.1.4 创建套接字 105 6.1.5 名字解析 105 6.2 红外线套接字 107 6.2.1 定址 107 6.2.2 名字解析 108 6.2.3 红外线设备列举 108 6.2.4 查询IAS 110 6.2.5 创建套接字 111 6.2.6 套接字选项 112 6.3 IPX/SPX 112 6.3.1 编址 112 6.3.2 创建套接字 112 6.4 NetBIOS 115 6.4.1 定址 115 6.4.2 创建套接字 116 6.5 AppleTalk 117 6.5.1 定址 117 6.5.2 AppleTalk名的注册 118 6.5.3 AppleTalk名的解析 119 6.5.4 创建套接字 124 6.6 ATM 124 6.6.1 定址 125 6.6.2 创建套接字 128 6.6.3 把套接字和SAP绑定在一起 129 6.6.4 名字解析 130 6.7 Winsock 2支持的其他函数 130 6.8 小结 131 第7章 Winsock基础 132 7.1 Winsock的初始化 132 7.2 错误检查和控制 134 7.3 面向连接的协议 134 7.3.1 服务器API函数 134 7.3.2 客户机API函数 138 7.3.3 数据传输 140 7.3.4 流协议 144 7.3.5 中断连接 146 7.3.6 综合分析 147 7.4 无连接协议 155 7.4.1 接收端 155 7.4.2 发送端 156 7.4.3 基于消息的协议 157 7.4.4 释放套接字资源 158 7.4.5 综合分析 158 7.5 其他API函数 165 7.6 Windows CE 168 7.7 其他地址家族 169 7.7.1 AppleTalk 169 7.7.2 IrDA 169 7.7.3 NetBIOS 170 7.7.4 IPX/SPX 170 7.7.5 ATM 171 7.8 小结 171 第8章 Winsock I/O方法 172 8.1 套接字模式 172 8.1.1 锁定模式 173 8.1.2 非锁定模式 175 8.2 套接字I/O模型 176 8.2.1 select模型 176 8.2.2 WSAAsyncSelect 179 8.2.3 WSAEventSelect 183 8.2.4 重叠模型 188 8.2.5 完成端口模型 198 8.3 I/O模型的问题 206 8.4 小结 206 第9章 套接字选项和I/O控制命令 207 9.1 套接字选项 207 9.1.1 SOL_SOCKET选项级别 208 9.1.2 SOL_APPLETALK选项级别 215 9.1.3 SOL_IRLMP选项级别 218 9.1.4 IPPROTO_IP选项级 222 9.1.5 IPPROTO_TCP选项级别 227 9.1.6 NSPROTO_IPX选项级别 227 9.2 IOCTLSOCKET和WSAIOCTL 231 9.2.1 标准I/O控制命令 232 9.2.2 其他I/O控制命令 233 9.2.3 安全套接字层的I/O控制命令 239 9.2.4 ATM I/O控制命令 241 9.3 小结 242 第10章 名字注册和解析 243 10.1 背景知识 243 10.2 名字空间模型 243 10.3 服务的注册 245 10.3.1 安装服务类 245 10.3.2 服务的注册 248 10.3.3 服务注册示例 251 10.4 服务的查询 254 10.4.1 怎样对服务进行查询 255 10.4.2 查询DNS 257 10.5 小结 260 第11章 多播 261 11.1 多播的含义 261 11.2 IP多播 264 11.2.1 Internet网关管理协议 264 11.2.2 IP叶节点 265 11.2.3 IP多播的实施 266 11.3 ATM多播 266 11.3.1 ATM叶节点 267 11.3.2 ATM根节点 267 11.4 多播与Winsock 268 11.4.1 Winsock 1多播 268 11.4.2 Winsock 2多播 274 11.4.3 常用的Winsock选项 288 11.4.4 拨号网络多播的一处限制 290 11.5 小结 291 第12章 常规服务质量 292 12.1 背景知识 292 12.1.1 资源预约协议 292 12.1.2 网络组件 293 12.1.3 应用组件 294 12.1.4 策略组件 296 12.2 QoS和Winsock 296 12.2.1 QoS结构 297 12.2.2 QoS调用函数 299 12.3 QoS中止 303 12.4 QoS编程 311 12.4.1 RSVP和套接字类型 312 12.4.2 QoS通知 314 12.4.3 QoS模板 316 12.5 示例 318 12.5.1 单播TCP 318 12.5.2 单播UDP 336 12.5.3 多播UDP 337 12.6 ATM和QoS 338 12.7 小结 339 第13章 原始套接字 340 13.1 原始套接字的创建 340 13.2 Internet控制消息协议 341 13.2.1 Ping示例 342 13.2.2 Traceroute示例 351 13.3 Internet组管理协议 352 13.4 IP_HDRINCL的使用 354 13.5 小结 362 第14章 Winsock 2服务提供者接口 363 14.1 SPI基础 363 14.1.1 SPI命名规则 364 14.1.2 Winsock 2 API和SPI函数之间的映 射 364 14.2 传输服务提供者 364 14.2.1 WSPStartup 365 14.2.2 参数 366 14.2.3 实例计数 369 14.2.4 套接字句柄 369 14.2.5 Winsock I/O模型支持 371 14.2.6 扩展函数 380 14.2.7 传输服务提供者的安装 381 14.3 命名空间服务提供者 386 14.3.1 名字空间的安装 386 14.3.2 名字空间的实施 387 14.3.3 名字空间提供者示范 392 14.4 Winsock SPI函数的调试追踪 396 14.5 小结 396 第15章 微软Visual Basic Winsock控件 397 15.1 属性 397 15.2 方法 398 15.3 事件 399 15.4 UDP示例 400 15.4.1 UDP消息的发送 403 15.4.2 UDP消息的接收 404 15.4.3 获取Winsock信息 404 15.4.4 运行UDP示例 405 15.4.5 UDP状态 405 15.5 TCP示例 406 15.5.1 TCP服务器 412 15.5.2 TCP客户机 413 15.5.3 获取Winsock信息 414 15.5.4 运行TCP示例 414 15.5.5 TCP状态 415 15.6 存在的局限 415 15.7 常见错误 416 15.8 Windows CE的Winsock控件 417 15.8.1 Windows CE Winsock示例 417 15.8.2 已知的问题 421 15.9 小结 422 第三部分 远程访问服务 第16章 RAS客户机 423 16.1 编译和链接 424 16.2 数据结构和平台兼容问题 424 16.3 DUN 1.3升级和Windows 95 425 16.4 RASDIAL 425 16.4.1 同步模式 427 16.4.2 异步模式 428 16.4.3 状态通知 432 16.4.4 关闭连接 432 16.5 电话簿 433 16.5.1 电话簿条目的增添 440 16.5.2 电话簿条目的重命名 442 16.5.3 电话簿条目的删除 442 16.5.4 电话簿条目的列举 443 16.5.5 用户凭据的管理 443 16.5.6 多链接电话簿的子条目 445 16.6 连接管理 446 16.7 小结 450 第四部分 附录录录 附录A NetBIOS命令索引 451 附录B IP助手函数 464 附录C Winsock错误代码 481

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧