下载 >  开发技术 >  C++ > Windows异步套接字网络编程
4

Windows异步套接字网络编程

本程序基于windows的异步消息机制,采用异步套接字WSAsoket,详细设计实现了客户端、服务器端的即时消息通讯,是做聊天室(单人聊天、多人聊天)的一个很好的例子,编程工具采用VC++(MFC),希望对有此方面需求的广大编程爱好者提供很好的参考。。
2009-05-22 上传大小:119KB
分享
收藏 举报

评论 共9条

daya9527 代码思路很清晰,不错,作者基础很扎实
2013-11-21
回复
lsdjiyi 内容有点简单了,谁在上传一些深一点内容的
2013-07-23
回复
chaoyuan899 学习了,资源分确实太高了,
2013-04-30
回复
《UNIX网络编程卷1:套接字联网API(第3版)》高清版PDF

UNIX网络编程卷1:套接字联网API(第3版)的高清pdf文件,资源下载的最低积分,高清版。

立即下载
UNIX网络编程卷1:套接字联网API(第3版)part1 共2部分

第一部分 简介和TCP/IP 第1章 简介 第2章 传输层:TCP、UDP和SCTP 第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 IO复用:select和poll函数 第7章 套接字选项 第8章 基本UDP套接字编程 第9章 基本SCTP套接字编程 第10章 SCTP客户/服务器程序例子 第11章 名字与地址转换 第三部分 第12章 IPv4与IPv6的互操作性 第13章 守护进程和inetd超级服务器 第14章 高级I/O函数 第15章 Unix域协议 第16章 非阻塞式I/O 第17章 ioctl操作 第18章 路由套接字 第19章 密钥管理套接字 第20章 广播 第21章 多播 第22章 高级UDP套接字编程 第23章 高级SCTP套接字编程 第24章 带外数据 第25章 信号驱动式I/O 第26章 线程 第27章 IP选项 第28章 原始套接字 第29章 数据链路访问 第30章 客户/服务器程序设计范式 第31章 流 附录A IPv4、IPv6、ICMPv4和ICMPv6 附录B 虚拟网络 附录C 调试技术 附录D 杂凑的源代码 附录E 精选习题答案 参考文献 索引

立即下载
C++网络编程例子说明异步非阻塞Socket的基本原理和工作机制

用一个最简单的例子说明异步非阻塞Socket的基本原理和工作机制

立即下载
《UNIX网络编程(卷1):套接字联网API(第3版)》带目录 高清完整PDF版

《UNIX网络编程(卷1):套接字联网API(第3版)》是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。    《UNIX网络编程(卷1):套接字联网API(第3版)》内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。 史蒂文斯(W. Richard Stevens)(1951—1999),国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。   鲁道夫(Bill Fenner),AT&T实验室的主要技术人员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,负责审批作为RFC出版的所有路由相关文档。   鲁道夫(Andrew M. Rudoff Sun),公司的资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。

立即下载
UNIX网络编程卷1:套接字联网API(第3版)

《UNIX网络编程(卷1):套接字联网API(第3版)》是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。

立即下载
《UNIX网络编程(卷1):套接字联网API(第3版)》中文完整PDF版

本书第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。本书是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。 本书全面深入地介绍了如何使用套接口API进行网络编程。全书从对套接口API的综合讨论开始,论述了基本编程内容后,即转入高级套接口编程的相关主题,包括IPv4与IPv6的互操作性、UNIX域协议、非阻塞I/O、路由套接口、广播、多播、线程、原始套接口、数据链路访问等,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还对流这种设备驱动机制作了深入分析。在附录中给出了IPv6、ICMPv6、虚拟网络等内容以及部分习题答案。 本书内容详尽且具权威性,几乎每章都提供精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,本书也可作为网络研究和开发人员的自学教材和参考书。

立即下载
TCP/IP网络编程 手把手教你套接字编程 中文版

TCP/IP网络编程 手把手教你套接字编程 中文版

立即下载
C++编写的WINSOCKET异步程序

C++编写的WINSOCKET异步程序,已经封装好了的类,直接拿来用就可以了

立即下载
Windows下C语言网络编程快速入门.pdf

Windows下C语言网络编程.soket套接字编程实现。

立即下载
UNIX网络编程 卷1 套接字联网API(第3版)(中文版)--随书源代码

CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《UNIX网络编程 卷1 套接字联网API(第3版)(中文版)》的随书源代码 UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本信息 原书名: Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition) 原出版社: Addison-Wesley Professional 作者: (美)W. Richard Stevens Bill Fenner Andrew M. Rudoff 丛书名: 图灵程序设计丛书 操作系统 出版社:人民邮电出版社 ISBN:9787115228406 上架时间:2010-6-28 出版日期:2010 年6月 开本:16开 页码:804 版次:1-1 所属分类:计算机 > 软件与程序设计 > 网络编程 > 综合 计算机 > 操作系统 > UNIX 编辑推荐   UNIX网络专家W. Richard Stevens的传世之作的最新版。    世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔 紧跟网络技术新发展,深入探讨最新关键标准、实现和技术 所有示例均是在UNIX系统中测试通过的真实的、可运行的代码 内容简介   这是一部传世之作!顶级网络编程专家bill fenner和andrew m. rudoff应邀执笔,对w. richard stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展,增添了ipv6、sctp协议和密钥管理套接字等内容,深入讨论了最新的关键标准、实现和技术。    书中的所有示例都是在unix系统上测试通过的真实的、可运行的代码,继承了stevens一直强调的理念:“学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从图灵网站(www.turingbook.com)本书网页免费注册下载这些示例的源代码。    本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。 作译者   W. Richard Stevens(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。   Bill Fenner AT&T实验室的主要技术人员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,负责审批作为RFC出版的所有路由相关文档。   Andrew M. Rudoff Sun公司的资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。 目录 封面 -14 扉页 -13 版权 -12 版权声明 -11 序 -10 前言 -9 目录 -6 第一部分 简介和TCP/IP 1 第1章 简介 2 1.1 概述 2 1.2 一个简单的时间获取客户程序 5 1.3 协议无关性 9 1.4 错误处理:包裹函数 10 1.5 一个简单的时间获取服务器程序 12 1.6 本书中客户/服务器程序示例索引表 14 1.7 OSI模型 16 1.8 BSD网络支持历史 17 1.9 测试用网络及主机 19 1.10 Unix标准 22 1.11 64位体系结构 24 1.12 小结 25 习题 25 第2章 传输层:TCP、UDP和SCTP 27 2.1 概述 27 2.2 总图 27 2.3 用户数据报协议(UDP) 29 2.4 传输控制协议(TCP) 30 2.5 流控制传输协议(SCTP) 31 2.6 TCP连接的建立和终止 31 2.7 TIME_WAIT状态 37 2.8 SCTP关联的建立和终止 38 2.9 端口号 42 2.10 TCP端口号与并发服务器 43 2.11 缓冲区大小及限制 45 2.12 标准因特网服务 50 2.13 常见因特网应用的协议使用 51 2.14 小结 52 习题 53 第二部分 基本套接字编程 55 第3章 套接字编程简介 56 3.1 概述 56 3.2 套接字地址结构 56 3.3 值-结果参数 61 3.4 字节排序函数 63 3.5 字节操纵函数 66 3.6 inet_aton、inet_addr和inet_ntoa函数 67 3.7 inet_pton和inet_ntop函数 68 3.8 sock_ntop和相关函数 70 3.9 readn、writen和readline函数 72 3.10 小结 76 习题 76 第4章 基本TCP套接字编程 77 4.1 概述 77 4.2 socket函数 77 4.3 connect函数 80 4.4 bind函数 81 4.5 listen函数 84 4.6 accept函数 88 4.7 fork和exec函数 90 4.8 并发服务器 91 4.9 close函数 93 4.10 getsockname和getpeername函数 94 4.11 小结 96 习题 96 第5章 TCP客户/服务器程序示例 97 5.1 概述 97 5.2 TCP回射服务器程序:main函数 97 5.3 TCP回射服务器程序:str_echo函数 98 5.4 TCP回射客户程序:main函数 99 5.5 TCP回射客户程序:str_cli函数 100 5.6 正常启动 101 5.7 正常终止 102 5.8 POSIX信号处理 103 5.9 处理SIGCHLD信号 106 5.10 wait和waitpid函数 108 5.11 accept返回前连接中止 111 5.12 服务器进程终止 112 5.13 SIGPIPE信号 113 5.14 服务器主机崩溃 114 5.15 服务器主机崩溃后重启 115 5.16 服务器主机关机 116 5.17 TCP程序例子小结 116 5.18 数据格式 117 5.19 小结 120 习题 120 第6章 I/O复用:select和poll函数 122 6.1 概述 122 6.2 I/O模型 122 6.3 select函数 127 6.4 str_cli函数(修订版) 132 6.5 批量输入 133 6.6 shutdown函数 136 6.7 str_cli函数(再修订版) 137 6.8 TCP回射服务器程序(修订版) 138 6.9 pselect函数 142 6.10 poll函数 144 6.11 TCP回射服务器程序(再修订版) 146 6.12 小结 148 习题 149 第7章 套接字选项 150 7.1 概述 150 7.2 getsockopt和setsockopt函数 150 7.3 检查选项是否受支持并获取默认值 152 7.4 套接字状态 156 7.5 通用套接字选项 156 7.6 IPv4套接字选项 168 7.7 ICMPv6套接字选项 169 7.8 IPv6套接字选项 169 7.9 TCP套接字选项 171 7.10 SCTP套接字选项 173 7.11 fcntl函数 182 7.12 小结 184 习题 184 第8章 基本UDP套接字编程 186 8.1 概述 186 8.2 recvfrom和sendto函数 187 8.3 UDP回射服务器程序:main函数 187 8.4 UDP回射服务器程序:dg_echo函数 188 8.5 UDP回射客户程序:main函数 190 8.6 UDP回射客户程序:dg_cli函数 190 8.7 数据报的丢失 191 8.8 验证接收到的响应 191 8.9 服务器进程未运行 193 8.10 UDP程序例子小结 194 8.11 UDP的connect函数 196 8.12 dg_cli函数(修订版) 199 8.13 UDP缺乏流量控制 200 8.14 UDP中的外出接口的确定 203 8.15 使用select函数的TCP和UDP回射服务器程序 204 8.16 小结 206 习题 207 第9章 基本SCTP套接字编程 208 9.1 概述 208 9.2 接口模型 208 9.3 sctp_bindx函数 212 9.4 sctp_connectx函数 213 9.5 sctp_getpaddrs函数 213 9.6 sctp_freepaddrs函数 213 9.7 sctp_getladdrs函数 214 9.8 sctp_freeladdrs函数 214 9.9 sctp_sendmsg函数 214 9.10 sctp_recvmsg函数 215 9.11 sctp_opt_info函数 215 9.12 sctp_peeloff函数 216 9.13 shutdown函数 216 9.14 通知 217 9.15 小结 221 习题 222 第10章 SCTP客户/服务器程序例子 223 10.1 概述 223 10.2 SCTP一到多式流分回射服务器程序:main函数 223 10.3 SCTP一到多式流分回射客户程序:main函数 225 10.4 SCTP流分回射客户程序:sctpstr_cli函数 226 10.5 探究头端阻塞 228 10.6 控制流的数目 233 10.7 控制终结 233 10.8 小结 234 习题 235 第11章 名字与地址转换 236 11.1 概述 236 11.2 域名系统 236 11.3 gethostbyname函数 239 11.4 gethostbyaddr函数 242 11.5 getservbyname和getservbyport函数 242 11.6 getaddrinfo函数 245 11.7 gai_strerror函数 250 11.8 freeaddrinfo函数 251 11.9 getaddrinfo函数:IPv6 251 11.10 getaddrinfo函数:例子 253 11.11 host_serv函数 254 11.12 tcp_connect函数 254 11.13 tcp_listen函数 257 11.14 udp_client函数 261 11.15 udp_connect函数 263 11.16 udp_server函数 264 11.17 getnameinfo函数 266 11.18 可重入函数 267 11.19 gethostbyname_r和gethostbyaddr_r函数 270 11.20 作废的IPv6地址解析函数 271 11.21 其他网络相关信息 272 11.22 小结 273 习题 274 第三部分 高级套接字编程 277 第12章 IPv4与IPv6的互操作性 278 12.1 概述 278 12.2 IPv4客户与IPv6服务器 278 12.3 IPv6客户与IPv4服务器 281 12.4 IPv6地址测试宏 283 12.5 源代码可移植性 284 12.6 小结 284 习题 285 第13章 守护进程和inetd超级服务器 286 13.1 概述 286 13.2 syslogd守护进程 286 13.3 syslog函数 287 13.4 daemon_init函数 289 13.5 inetd守护进程 293 13.6 daemon_inetd函数 297 13.7 小结 299 习题 299 第14章 高级I/O函数 300 14.1 概述 300 14.2 套接字超时 300 14.3 recv和send函数 305 14.4 readv和writev函数 306 14.5 recvmsg和sendmsg函数 307 14.6 辅助数据 310 14.7 排队的数据量 313 14.8 套接字和标准I/O 313 14.9 高级轮询技术 316 14.10 T/TCP:事务目的TCP 320 14.11 小结 322 习题 323 第15章 Unix域协议 324 15.1 概述 324 15.2 Unix域套接字地址结构 324 15.3 socketpair函数 326 15.4 套接字函数 327 15.5 Unix域字节流客户/服务器程序 327 15.6 Unix域数据报客户/服务器程序 329 15.7 描述符传递 330 15.8 接收发送者的凭证 337 15.9 小结 340 习题 340 第16章 非阻塞式I/O 341 16.1 概述 341 16.2 非阻塞读和写:str_cli函数(修订版) 342 16.3 非阻塞connect 351 16.4 非阻塞connect:时间获取客户程序 352 16.5 非阻塞connect:Web客户程序 354 16.6 非阻塞accept 362 16.7 小结 363 习题 363 第17章 ioctl操作 365 17.1 概述 365 17.2 ioctl函数 365 17.3 套接字操作 366 17.4 文件操作 367 17.5 接口配置 367 17.6 get_ifi_info函数 369 17.7 接口操作 378 17.8 ARP高速缓存操作 378 17.9 路由表操作 380 17.10 小结 381 习题 381 第18章 路由套接字 382 18.1 概述 382 18.2 数据链路套接字地址结构 382 18.3 读和写 383 18.4 sysctl操作 390 18.5 get_ifi_info函数 394 18.6 接口名字和索引函数 397 18.7 小结 401 习题 401 第19章 密钥管理套接字 402 19.1 概述 402 19.2 读和写 403 19.3 倾泻安全关联数据库 404 19.4 创建静态安全关联 407 19.5 动态维护安全关联 412 19.6 小结 415 习题 416 第20章 广播 417 20.1 概述 417 20.2 广播地址 418 20.3 单播和广播的比较 419 20.4 使用广播的dg_cli函数 422 20.5 竞争状态 424 20.6 小结 431 习题 432 第21章 多播 433 21.1 概述 433 21.2 多播地址 433 21.3 局域网上多播和广播的比较 436 21.4 广域网上的多播 438 21.5 源特定多播 440 21.6 多播套接字选项 441 21.7 mcast_join和相关函数 445 21.8 使用多播的dg_cli函数 450 21.9 接收IP多播基础设施会话声明 451 21.10 发送和接收 454 21.11 SNTP:简单网络时间协议 457 21.12 小结 461 习题 461 第22章 高级UDP套接字编程 462 22.1 概述 462 22.2 接收标志、目的IP地址和接口索引 462 22.3 数据报截断 467 22.4 何时用UDP代替TCP 467 22.5 给UDP应用增加可靠性 469 22.6 捆绑接口地址 478 22.7 并发UDP服务器 482 22.8 IPv6分组信息 483 22.9 IPv6路径MTU控制 486 22.10 小结 487 习题 488 第23章 高级SCTP套接字编程 489 23.1 概述 489 23.2 自动关闭的一到多式服务器程序 489 23.3 部分递送 490 23.4 通知 492 23.5 无序的数据 495 23.6 捆绑地址子集 496 23.7 确定对端和本端地址信息 497 23.8 给定IP地址找出关联ID 500 23.9 心搏和地址不可达 501 23.10 关联剥离 502 23.11 定时控制 503 23.12 何时改用SCTP代替TCP 505 23.13 小结 506 习题 506 第24章 带外数据 507 24.1 概述 507 24.2 TCP带外数据 507 24.3 sockatmark函数 513 24.4 TCP带外数据小结 519 24.5 客户/服务器心搏函数 520 24.6 小结 524 习题 524 第25章 信号驱动式I/O 525 25.1 概述 525 25.2 套接字的信号驱动式I/O 525 25.3 使用SIGIO的UDP回射服务器程序 527 25.4 小结 532 习题 533 第26章 线程 534 26.1 概述 534 26.2 基本线程函数:创建和终止 535 26.3 使用线程的str_cli函数 537 26.4 使用线程的TCP回射服务器程序 538 26.5 线程特定数据 542 26.6 Web客户与同时连接 549 26.7 互斥锁 552 26.8 条件变量 555 26.9 Web客户与同时连接(续) 558 26.10 小结 560 习题 560 第27章 IP选项 561 27.1 概述 561 27.2 IPv4选项 561 27.3 IPv4源路径选项 562 27.4 IPv6扩展首部 569 27.5 IPv6步跳选项和目的地选项 569 27.6 IPv6路由首部 573 27.7 IPv6粘附选项 577 27.8 历史性IPv6高级API 578 27.9 小结 579 习题 579 第28章 原始套接字 580 28.1 概述 580 28.2 原始套接字创建 580 28.3 原始套接字输出 581 28.4 原始套接字输入 582 28.5 ping程序 584 28.6 traceroute程序 596 28.7 一个ICMP消息守护程序 608 28.8 小结 622 习题 622 第29章 数据链路访问 623 29.1 概述 623 29.2 BPF:BSD分组过滤器 623 29.3 DLPI:数据链路提供者接口 625 29.4 Linux:SOCK_PACKET和 PFPACKET 626 29.5 libpcap:分组捕获函数库 627 29.6 libnet:分组构造与输出函数库 627 29.7 检查UDP的校验和字段 628 29.8 小结 645 习题 645 第30章 客户/服务器程序设计范式 646 30.1 概述 646 30.2 TCP客户程序设计范式 648 30.3 TCP测试用客户程序 649 30.4 TCP迭代服务器程序 650 30.5 TCP并发服务器程序,每个客户一个子进程 650 30.6 TCP预先派生子进程服务器程序,accept无上锁保护 653 30.7 TCP预先派生子进程服务器程序,accept使用文件上锁保护 659 30.8 TCP预先派生子进程服务器程序,accept使用线程上锁保护 662 30.9 TCP预先派生子进程服务器程序,传递描述符 663 30.10 TCP并发服务器程序,每个客户一个线程 667 30.11 TCP预先创建线程服务器程序,每个线程各自accept 669 30.12 TCP预先创建线程服务器程序,主线程统一accept 671 30.13 小结 673 习题 674 第31章 流 675 31.1 概述 675 31.2 概貌 675 31.3 getmsg和putmsg函数 678 31.4 getpmsg和putpmsg函数 679 31.5 ioctl函数 680 31.6 TPI:传输提供者接口 680 31.7 小结 689 习题 689 附录A IPv4、IPv6、ICMPv4和ICMPv6 690 附录B 虚拟网络 704 附录C 调试技术 708 附录D 杂凑的源代码 714 附录E 精选习题答案 726 参考文献 756 索引 763 前言   概述   本书面向的读者是那些希望自己编写的程序能使用称为套接字(socket)的API进行彼此通信的人。有些读者可能已经非常熟悉套接字了,因为这个模型几乎已经成了网络编程的同义词,但有些读者可能仍需要从头开始学习。本书想达到的目标是向大家提供网络编程指导。这些内容不仅适用于专业人士,也适用于初学者;不仅适用于维护已有代码,也适用于开发新的网络应用程序;此外,还适用于那些只是想了解一下自己系统中网络组件的工作原理的人。   书中的所有示例都是在Unix系统上测试通过的真实的、可运行的代码。但是,考虑到许多非Unix的操作系统也支持套接字API,因而我们选取的示例与所讲述的一般性概念,在很大程度上是与操作系统无关的。几乎每种操作系统都提供了大量的网络应用程序,如网页浏览器、电子邮件客户端、文件共享服务器等。我们按常规的划分方法把这些应用程序分为客户程序和服务器程序,并在书中多次编写了相应的小型示例。   面向Unix介绍网络编程自然免不了要介绍Unix本身和TCP/IP的相关背景知识。需要更详尽的背景知识时,我们会指引读者查阅其他书籍。本书中经常提到以下4本书,我们将其简记如下:   APUE:Advanced Programming in the UNIX Environment [Stevens 1992];   TCPv1:TCP/IP Illustrated, Volume 1 [Stevens 1994];   TCPv2:TCP/IP Illustrated, Volume 2 [Wright and Stevens 1995];   TCPv3:TCP/IP Illustrated, Volume 3 [Stevens 1996]。   其中TCPv2包含了与本书内容密切相关的细节,它描述并给出了套接字API中网络编程函数(socket、bind、connect等)的真实4.4BSD实现。如果已经理解某个特性的实现,那么在应用程序中使用该特性就更有意义了。   与第2版的区别   从20世纪80年代开始,套接字就差不多是现在这个样子了。时至今日,套接字仍然是网络API的首选,其最初的设计的确值得称道。因此,当读者发现我们对出版于1998年的第2版又做了不少改动时,可能会觉得惊讶。本书中所做的改动归纳如下。   新版本包含了IPv6的最新信息。在第2版出版时,IPv6尚处于草案阶段,这些年来已经有所发展。   更新了全部函数和示例的描述,以反映最新的POSIX规范(POSIX 1003.1-2001),即Single Unix Specification Version 3。   删去了X/Open传输接口(XTI)的内容。这个API已经不常用了,连最新的POSIX 规范也不再提到。   删去了事务TCP协议(T/TCP)的内容。   新增了三章用于描述一种相对较新的传输协议——SCTP。这个可靠的面向消息的协议能够在两个端点之间提供多个流,并为多归属技术提供传输层支持。该协议最初是为了在因特网上传输电话信号而设计的,但它的一些特性可以用于许多应用。   新增一章描述密钥管理套接字,该套接字可用于网际协议安全(IPsec)和其他网络安全服务。   第2版中使用的机器及Unix变体都按最新版本更新,示例也根据机器的特性做了修改。许多情况下,修改示例是因为操作系统厂商修正了程序缺陷或者新增了特性。但读者可以想见,新的缺陷总能不时地被发现。本书中用于测试示例的机器如下:   运行MacOS/X 10.2.6的Apple Power PC;   运行HP-UX 11i 的HP PA-RISC; .  运行AIX 5.1的IBM Power PC;   运行FreeBSD 4.8的Intel x86;   运行Linux 2.4.7的Intel x86;   运行FreeBSD 5.1的Sun SPARC;   运行Solaris 9的Sun SPARC。   这些机器的具体用法见图1-16。   本系列的第2卷(《UNIX网络编程卷2:进程间通信》)基于本卷的内容进一步讨论了消息传递、同步、共享内存及远程过程调用。   如何使用本书   本书既可以作为网络编程的教程,也可以作为有经验的程序员的参考书。用作网络编程的教程或入门级教材时,重点应放在第二部分(第3章至第11章),然后可以看看其他感兴趣的主题。第二部分包含了TCP和UDP的基本套接字函数,以及SCTP、I/O多路复用、套接字选项和基本名字与地址的转换。所有读者都应该阅读第1章,尤其是1.4节,介绍了一些贯穿全书的包裹函数。读者可以根据自身的知识背景,选读第2章,或许还有附录A。第三部分的多数章节可以彼此独立地进行阅读。   为了方便读者把本书作为参考书,本书提供了完整的全文索引,并在最后几页总结了每个函数和结构的详细描述在正文中的哪里可以找到。为了给不按顺序阅读本书的读者提供方便,我们在全书中为相关主题提供了大量的交叉引用。   源代码与勘误   书中所有示例的源代码可以从www.unpbook.com获得 。学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。每章末尾提供了大量的习题,大部分在附录E中给出答案。   本书的最新勘误表也可以在上述网站获取。   致谢   本书第1版和第2版由W. Richard Stevens独立撰写,他不幸于1999年9月1日去世。Richard的著作体现了非常高的水准,被公认为是精炼、详实且极具可读性的艺术作品。在撰写这一修订版的过程中,我们力图保持Richard之前版本的高质量和全面性,这方面的任何不足都完全是新作者的过错。   任何作者的著作离不开家人与朋友的支持。Bill Fenner在此感谢爱妻Peggy(沙滩1/4英里赛冠军)与好友Christopher Boyd在本书撰写过程中承担了全部的家务,还要感谢朋友Jerry Winner,他的激励是无价的。同样地,Andy Rudoff要特别感谢他的妻子Ellen和两个女儿Jo、Katie自始至终的理解与鼓励。没有你们的支持,我们不可能完成本书。   思科公司的Randall Stewart提供了许多SCTP的材料,非常感谢他的巨大贡献。如果缺少了他的工作,本书就不能涵盖这一新颖而有趣的主题。   本书的审稿人给出了宝贵的反馈意见。他们发现了一些错误,指出了一些需要更多解释的地方,并对文字和代码示例提出了一些改进建议。作者在这里对如下审稿人表示感谢:James Carlson、Wu-Chang Feng、Rick Jones、Brian Kernighan、Sam Leffler、John McCann、Craig Metz、Ian Lance Taylor、David Schwartz和Gary Wright。   许多个人及其单位为本书中一些示例的测试提供了帮助,他们义务向我们出借系统、软件或为我们提供系统访问权限。   IBM奥斯汀实验室的Jessie Haug提供了AIX系统和编译器。   惠普公司的Rick Jones和William Gilliam为我们提供了运行HP-UX的多个系统的访问权限。   与Addison Wesley出版社的员工合作非常愉快,他们是Noreen Regina、Kathleen Caren、Dan DePasquale和Anthony Gemellaro。要特别感谢本书的编辑Mary Franz。   为了延续Rich Stevens的风格(不过该风格与流行的风格相反),我们用James Clark编写的优秀的Groff包为本书排版,用gpic程序绘制插图(其中用到了许多由Gary Wright编写的宏),用gtbl程序生成了表格,我们为全书添加了索引,并设计了最终的版式。录入源代码时用到了Dave Hanson的loom程序和Gary Wright写的一些脚本。在生成最终索引的过程中,还用到了Jon Bentley与Brian Kernighan编写的一组awk脚本。   欢迎读者以电子邮件的方式反馈意见、提出建议或订正错误。   Bill Fenner   加利福尼亚州伍德赛德市   Andrew M. Rudoff   科罗拉多州博尔德市   2003年10月   authors@unpbook.com   http://www.unpbook.com       序言   本书的第1版本于1990年问世,并迅速成为程序员学习网络编程的权威参考书。时至今日,计算机网络技术已发生了翻天覆地的变化。只要看看第1版给出的用于征集反馈意见的地址(“uunet!hsi!netbook”)就一目了然了。(有多少读者能看出这是20世纪80年代很流行的UUCP拨号网络的地址?)   现在UUCP网络已经很罕见了,而无线网络等新技术则变得无处不在!在这种背景下,新的网络协议和编程范型业已开发出来,但程序员却苦于找不到一本好的参考书来学习这些复杂的新技术。   这本书填补了这一空白。拥有本书旧版的读者一定想要一个新的版本来学习新的编程方法,了解IPv6等下一代协议方面的新内容。所有人都非常期待本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。   阅读本书是一种享受,我收获颇丰。相信大家定会有同感。   Sam Leffler 媒体评论   “所有人都非常期待这本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。阅读本书是一种享受,我收获颇丰。相信大家定会有同感。”   ——Sam Leffler,FreeBSD基金会副主席   “这部著作在计算机科学领域里的传奇得以延续,Bill Fenner和Andrew Rudoff居功至伟。”   ——Art Sedighi   “这套书是学习网络编程最好的书。全世界最最好的,远超群伦。”   ——S. Devasundaram   ——Thomas Haugland Jensen   “这本书不会让你一夜之间成为专家,但它终究会让你成为专家。”   ——John Nguyen   

立即下载
《C#网络编程实作教程》源码

《C#网络编程实作教程》的源码 包括以下网络编程典型应用的源码 包括 文件传输服务器 文件传输客户端 异步套接字服务器 异步套接字客户端 同步套接字服务器 同步套接字客户端 学籍管理ASP.NET服务 学籍管理ASP.NET应用程序 套接字数据库服务器 套接字数据库客户端 木马服务器 木马客户端 浏览器 DNS集成服务系统等

立即下载
异步套接字客户端

异步套接字客户端异步套接字客户端

立即下载
UNIX网络编程卷1:套接字联网API(第3版)---高清版.pdf

UNIX网络编程卷1:套接字联网API(第3版)---高清版 带有书签查阅方便

立即下载
UNIX网络编程卷1:套接字联网API(第3版)中文PDF版

本书全面深入地介绍了如何使用套接字API进行网络编程,是一部Unix网络编程的经典之作。

立即下载
VC++ 网络编程程序汇总

通过使用套接字来达到进程间通信目的编程就是网络编程。windows提供的基于网络编程的就是套接字也就是winsock

立即下载
(C#)基于SocketAsyncEventArgs的异步套接字通讯框架

基于SocketAsyncEventArgs的异步套接字通讯框架 基于SocketAsyncEventArgs的异步套接字通讯框架 基于SocketAsyncEventArgs的异步套接字通讯框架 基于SocketAsyncEventArgs的异步套接字通讯框架

立即下载
windows套接字

基于windows套接字的编程,帮助初学者学习网络编程

立即下载
UNIX网络编程 卷1 套接字联网API(第3版)

UNIX网络编程 卷1 套接字联网API(第3版),epub电子书格式

立即下载
windows网络编程》中文高清PDF

目者者录 译者序 前言 第一部分 传统网络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

立即下载
C#网络编程实作教程

DNS集成服务系统,异步套接字客户端,异步套接字服务器,套接字数据库服务器.等都在其中

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

Windows异步套接字网络编程

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: