TCP/IPSockets编程(C语言实现)(第2版)(TCP/IP Sockets In C(Second Edition))
分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,C语言及其相关,
品牌: 多纳霍(Michael J.Donahoo)
基本信息·出版社:清华大学出版社
·页码:180 页
·出版日期:2009年11月
·ISBN:9787302211372
·条形码:9787302211372
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·外文书名:TCP/IP Sockets In C(Second Edition)
产品信息有问题吗?请帮我们更新产品信息。
内容简介《TCP/IPSockets编程(C语言实现)(第2版)》为开发成熟且功能强大的Web应用程序提供所需的知识和技巧。《TCP/IPSockets编程(C语言实现)(第2版)》以教学指南的方式,帮助读者掌握在C语言环境下,用套接字实现客户—服务器项目开发的任务和技术。《TCP/IPSockets编程(C语言实现)(第2版)》的本版次增加了对最新技术的介绍,如对IPv6的支持,以及更详细的编程策略等内容。
《TCP/IPSockets编程(C语言实现)(第2版)》内容简明扼要、示例丰富,既可作为高等学校网络编程课程的教学参考书,也是网络开发人员进行应用程序开发的常备参考书。
作者简介多纳霍,Baylor大学副教授,为本科生和研究生讲授网络技术课程。他编写了多本关于各种语言的套接字编程图书,以及一本SQL方面的图书。
Kenneth L.Calvert,Kentucky大学教授,在该大学里,他主要讲授计算机网络系统课程,具有20多年的TCP/IP套接字编程经验。
编辑推荐《TCP/IPSockets编程(C语言实现)(第2版)》由清华大学出版社出版。
目录
第1章 简介
1.1 网络、分组和协议
1.2 关于地址
1.2.1 记下IP地址
1.2.2 处理两个版本
1.2.3 端口号
1.2.4 特殊地址
1.3 关于名称
1.4 客户与服务器
1.5 什么是套接字
练习题
第2章 基本的TCP套接字
2.1 IPv4TCP客户
2.2 IPv4TCP服务器
2.3 创建和销毁套接字
2.4 指定地址
2.4.1 通用地址
2.4.2 IPv4地址
2.4.3 IPv6地址
2.4.4 通用地址存储器
2.4.5 二进制/字符串地址转换
2.4.6 获取套接字的关联地址
2.5 连接套接字
2.6 绑定到地址
2.7 处理进入的连接
2.8 通信
2.9 使用IPv6
练习题
第3章 关于名称和地址族
3.1 将名称映射到数字
3.1.1 访问名称服务
3.1.2 详细信息
3.2 编写地址通用的代码
3.2.1 通用的TCP客户
3.2.2 通用的TCP服务器
3.2.3 IPv4与IPv6之间互操作
3.3 从数字获取名称
练习题
第4章 使用UDP套接字
4.1 UDP客户
4.2 UDP服务器
4.3 利用UDP套接字进行发送和接收
4.4 连接UDP套接字
练习题
第5章 发送和接收数据
5.1 编码整数
5.1.1 整数的大小
5.1.2 字节排序
5.1.3 符号性与符号扩展
5.1.4 手工编码整数
5.1.5 在流中包装TCP套接字
5.1.6 结构覆盖:对齐与填充
5.1.7 字符串和文本
5.1.8 位操作:编码布尔值
5.2 构造.成帧和解析消息
5.2.1 成帧
5.2.2 基于文本的消息编码
5.2.3 进制消息编码
5.2.4 综合应用
5.3 小结
练习题
第6章 超越基本的套接字编程
6.1 套接字选项
6.2 信号
6.3 非阻塞I/O
6.3.1 非阻塞套接字
6.3.2 异步I/O
6.3.3 超时
6.4 多任务处理
6.4.1 每个客户一个进程
6.4.2 每个客户一个线程
6.4.3 受限的多任务处理
6.5 多路复用
6.6 多个接收者
6.6.1 广播
6.6.2 多播
6.6.3 广播与多播
练习题
第7章 揭密
7.1 缓冲和TCP
7.2 死锁风险
7.3 关于性能
7.4 TCP套接字的生存期
7.4.1 连接
7.4.2 关闭TCP连接
7.5 解多路复用揭密
练习题
第8章 用C++进行套接字编程
8.1 PracticalSocket库概述
8.2 加1服务
8.2.1 加1服务器
8.2.2 加1客户
8.2.3 运行服务器和客户
练习题
8.3 调查服务
8.3.1 调查的支持函数
8.3.2 调查服务器
8.3.3 调查客户
8.3.4 运行服务器和客户
8.4 第二种样式的调查服务
8.4.1 套接字地址支持
8.4.2 套接字的iostream接口
8.4.3 增强的调查服务器
8.4.4 增强的调查客户
8.4.5 管理客户
8.4.6 运行服务器和客户
练习题
参考文献
……[看更多目录]
序言在我们编写本书的第1版时,在关于联网的大学课程中包括编程方面的内容不是很常见。现在看起来这似乎令人难以置信,目前,Internet变得对我们的世界如此重要,并且讲授实用编程和真实协议示例的好处被如此广泛地接受。尽管现在有其他语言提供了对Interact的访问,人们对原始的基于C的Berkeley Sockets仍然有很浓厚的兴趣。用于联网的Sockets API(应用程序编程接口)是20世纪80年代在加州大学伯克利分校为I_YNIX:的BSD版本开发的——这种UNIx版本是现在称为开源项目的最初几个示例之一。
Sockets API和Intemet在许多竞争性协议族——IPX、Appletalk、DECNet、OSI、SNA以及TCPfiP(Transmission Control Protocol/Intemet Protocal,传输控制协议/网际协议)一一的世界中逐渐成长起来,并且Sockets被设计成支持所有这些协议。在我们编写本书第1版时,只有很少的几个协议族被广泛应用,今天这个数量甚至更少。然而,就像我们在本书第1版中所预计的,对于那些想要设计和构建使用Intemet(即使用TCP/IP)的分布式应用程序的人来说,Sockets API仍然很重要。并且此接口已经证明非常健壮,足以支持网际协议的新版本(IPv6),现在几乎所有的公共计算平台都支持IPv6。
两个主要的考虑促使我们编写了本书的第2版。第一,依据我们自己的经验和其他人的反馈意见,我们发现一些主题需要更深入地介绍,另外一些主题则需要扩展。第二个考虑是人们日益接受并使用IPv6,它现在实质上受到所有当前的最终系统平台的支持。在编写本书时,不可能使用IPv6与Intemet上的大部分主机交换信息,但是有可能给其中的许多主机分配一个IPv6地址。尽管称IPv6将接管整个世界仍言之过早,但是开始编写应用程序以为之做好准备却正当其时。
文摘插图:
一个程序怎样通过网络与另一个程序通信?本书的目标是:在C编程语言的环境下,开始让你理解这个问题的答案。长时间以来,C都是实现网络通信软件所选的语言。的确,称为套接字的API(applicationprogramminginterface,应用程序编程接口)最初就是用C开发的。
不过,在深入研究套接字的细节之前,值得从总体上简要探讨一下网络和协议,看看我们的代码将适合于应用在什么位置。我们在本书中的目标不是讲授网络和TCP/IP如何工作——有许多针对此目的的优秀教材可以阅读[1、3、10、15、17】,而是介绍一些基本的概念和术语。
计算机网络由通过通信信道互连的机器组成。我们把这些机器称为主机(host)和路由器(router)。主机是运行应用程序(比如Web浏览器、IM代理或文件共享程序)的计算机。主机上运行的应用程序是网络的真正“用户”。路由器也称为网关(gateway),这种机器的职责是把信息从一条通信信道中继或转发(forward)到另一条通信信道。它们可能会运行程序,但是通常不会运行应用程序。出于我们的目的,通信信道(communicationchannel)是把字节序列从一台主机传送到另一台主机的工具;它可能是有线(例如,以太网)、无线(例如,WiFi)或其他连接。