简介
Internet的核心技术是TCP/IP协议,由于当前Internet的普及,TCP/IP程序设计已经成为当前最热门和应用最广泛的程序设计技术。
本书用浅显易懂的语言,试图通过大量的实例引导读者快速掌握TCP/IP程序设计的基本知识。本书在内容的安排上注意系统性和循序渐进性,首先介绍了进行TCP/IP程序设计所必须掌握的TCP/IP协议的有关知识,然后就网络程序设计的API进行了全面和系统的讲解,并且每一章都有一些简单易懂的实例,最后通过几种典型的TCP/IP程序设计实例的介绍和分析,使没有TCP/IP知识或对TCP/IP知识了解较少的读者通过本书的学习,也能在短期内掌握TCP/IP知识,并能进行一些简单实用的TCP/IP程序的开发工作。因此,本书是一本非常适合网络程序设计初学者和中级读者使用的书籍。
目录
第1章 internet与tcp/ip协议
1.1 internet中的"世界语"--tcp/ip协议
1.1.1 internet--"冷战"的产物
1.1.2 网络互联促成了tcp/ip协议的产生
1.2 tcp/ip协议的体系结构
1.2.1 网络体系结构的概念
1.2.2 tcp/ip协议的四个层次
1.2.3 tcp/ip协议模型中的操作系统边界和地址边界
1.3 tcp/ip协议的工作过程
1.3.1 tcp/ip协议通信模型
1.3.2 数据的封装与传递过程
本章小结
习题
第2章 ip协议
2.1 ip协议如何进行网络互联
2.1.1 网络互联方式
2.1.2 ip互联网原理
2.1.3 ip协议的地位与ip互联网的特点
2.2 ip地址
2.2.1 ip地址的结构
.2.2.2 ip地址的表示格式
2.2.3 ip地址的分类
2.2.4 一些有特殊用途的ip地址
2.2.5 子网与子网掩码
2.3 ip数据报格式
2.3.1 ip数据报各字段的功能
2.3.2 ip数据报分片与重组
2.3.3 ip数据报选项
2.4 internet控制报文协议(icmp)
2.4.1 icmp报文的封装与格式
2.4.2 icmp差错报文
2.4.3 icmp控制报文
2.4.4 icmp请求与应答报文
2.5 地址解析
2.5.1 arp协议
2.5.2 rarp协议
2.6 ip数据报的路由选择
2.6.1 路由表
2.6.2 路由选择算法
2.6.3 路由表的建立与刷新
2.6.4 路由选择协议
本章小结
习题
第3章 传输层协议udp和tcp
3.1 端到端通信和端口号
3.1.1 端到端通信
3.1.2 传输层端口的概念
3.2 用户数据报协议udp
3.2.1 udp数据报的封装及其格式
3.2.2 udp校验和的计算方法
3.2.3 udp协议的特点
3.3 传输控制协议tcp
3.3.1 tcp报文段格式
3.3.2 tcp连接的建立与关闭
3.3.3 tcp的流量控制和拥塞控制机制
3.3.4 tcp的超时重发机制
3.4 tcp与udp的比较
本章小结
习题
第4章 tcp/ip应用层常用协议
4.1 telnet协议
4.1.1 远程登录
4.1.2 telnet的工作原理
4.1.3 网络虚拟终端(nvt)的概念
4.1.4 telnet协议选项协商
4.1.5 telnet协议选项协商实例
4.2 文件传输协议ftp
4.2.1 ftp简介
4.2.2 ftp支持的文件类型和文件结构
4.2.3 ftp的工作原理
4.2.4 ftp命令和应答
4.2.5 ftp工作实例
4.3 电子邮件的工作原理及其协议
4.3.1 tcp/ip协议下e-mail的工作原理
4.3.2 smtp协议原理与工作实例
4.3.3 pop3协议原理与工作实例
4.3.4 电子邮件报文的格式与实例
4.3.5 多用途因特网邮件扩展mime
4.4 文本传输协议http
4.4.1 万维网的工作过程
4.4.2 超文本传输协议http与应用实例
本章小结
习题
第5章 tcp/ip协议代码实例分析
5.1 tcp/ip报文时序模型
5.2 报文代码及其分析
习题
第6章 网络程序设计基本知识
6.1 网络应用程序的概念
6.1.1 什么是网络应用程序
6.1.2 网络应用程序的标识问题
6.1.3 客户朋艮务器模型
6.2 tcp/ip应用程序工作模型与网络编程接口
6.2.1 tcp/ip应用程序工作模型
6.2.2 windows sockets简介
6.2.3 windows sockets规范的目标及几个相关的概念
6.3 套接口的概念及其编程原理
6.3.1 套接口(socket)
6.3.2 套接口的分类
6.3.3 套接口编程原理
6.3.4 winsock套接口编程时对错误的处理机制
6.3.5 网络字节顺序
6.4 winsock api基本函数--套接口与连接的建立
6.4.1 打开winsock--wsastartup()
6.4.2 创建套接口--socket()或wsasocket()
6.4.3 指定本地地址--bind()
6.4.4 监听连接--listen()
6.4.5 请求连接--connect()或wsaconnect()
6.4.6 接受连接--accept()或wsaaccept()
6.5 winsock api基本函数--数据传输
6.5.1 带外数据的概念
6.5.2 在已建立连接的套接口上发送数据
--send()或wsasend()
6.5.3 在已建立连接的套接口上接收数据
--recv()或wsarecv()
6.5.4 在无连接的套接口上接收数据
--recvfrom()或wsarecvfrom()
6.5.5 在无连接的套接口上发送数据
--sendto()或wsasendto()
6.6 winsock api基本函数--连接与
套接口的关闭
6.6.1 关闭读写通道--shutdown()
6.6.2 关闭套接口--closesocket()
6.6.3 终止使用winsock
--wsacleanup()
本章小结
习题
第7章 tcp/ip网络程序框架与实例
7.1 网络应用程序的基本工作流程
7.1.1 面向连接的客户/服务器程序工作流程
7.1.2 无连接的客户/服务器程序工作流程
7.2 基于tcp的客户/服务器通信程序实例
7.2.1 实例程序说明
7.2.2 服务器端程序
7.2.3 客户端程序
7.2.4 程序执行结果
7.3 基于udp的客户与服务器通信程序实例
7.3.1 实例程序说明
7.3.2 服务器端程序
7.3.3 客户端程序
7.3.4 程序执行结果
本章小结
习题
第8章 winsock api
8.1 字节排序函数
8.1.1 4字节主机字节顺序的数转化为
网络字节顺序--htonl()和wsahtonl()
8.1.2 2字节主机字节顺序的数转化为
网络字节顺序--htons()和wsahtons()
8.1.3 4字节网络字节顺序的数转化为
主机字节顺序--ntohl()和wsantohl()
8.1.4 2字节网络字节顺序的数转化为
主机字节顺序--ntohs()和wsantohs()
8.2 ip地址转换函数
8.2.1 点分十进制数表示的ip地址转换
为网络字节顺序的ip地址
--inet_addr()
8.2.2 网络字节顺序的ip地址转换为
点分十进制数表示的ip地址
--inet_ntoa()
8. 3 网络信息获取函数(数据库函数)
8.3.1 获得主机名--gethostname()
8.3.2 获得与套接口相连的远程协议地址
--getpeername()
8.3.3 获得套接口本地协议地址
--getsockname()
8.3.4 根据主机名取得主机信息
--gethostbyname()或
wsaasyncgethostbyname()
8.3.5 根据主机地址取得主机信息
--gethostbyaddr()或
wsaasyncgethostbyaddr()
8.3.6 根据协议名取得主机协议信息
--getprotobyname()或
wsaasyncgetprotobyname()
8.3.7 根据协议号取得主机协议信息
---getprotobynumber()或
wsaasyncgetprotobynumber()
8.3.8 根据服务名取得相关服务信息
---getservbyname()或
wsaasyncgetservbyname()
8.3.9 根据端口号取得相关服务信息
--getservbyport()或
wsaasyncgetservbyport()
8.3.10 网络信息获取函数应用实例
8.4 套接口选项函数
8.4.1 套接口选项函数说明
8.4.2 sol_socket选项级别
8.4.3 ipproto_ip选项级别
8.4.4 ipproto_tcp选项级别
8.4.5 套接口属性设置和获取实例
8.5 套接口i/o处理函数
8.5.1 阻塞与非阻塞通信方式
8.5.2 设置套接口的工作方式
--ioctlsocket()和wsaioctl()
8.5.3 套接口i/o状态查询--select()
8.5.4 异步事件通知
--wsaasyncselect()
8.5.5 取消正在执行的阻塞调用
--wsacancelblockingcall()
8.5.6 判断是否有阻塞调用
--wsaisblocking()
8.5.7 取消未完成的一个异步操作
--wsacancelasyncrequest()
8.6 事件对象i/o管理
8.6.1 创建事件对象
--wsacreateevent()
8.6.2 网络事件注册
--wsaeventselect()
8.6.3 事件对象状态复位
--wsaresetevent()
8.6.4 事件对象状态置位
--wsasetevent()
8.6.5 关闭事件对象
--wsacloseevent()
8.6.6 等待事件对象
--wsawaitformultipleevents()
8.6.7 网络事件查询
--wsaenumnetworkevents()
8.6.8 事件对象i/o管理程序实例
8.7 错误处理函数
8.7.1 获得错误操作代码
--wsagetlasterror()
8.7.2 设置错误操作代码
--wsasetlasterror()
8.8 winsock 2支持的其他函数
8.8.1 共享套接口
--wsaduplicatesocket()
8.8.2 获取传送协议信息
--wsaenumprotocols()
8.8.3 初始化服务质量
--wsagetqosbyname()
8.8.4 返回重叠操作结果
--wsagetoverlappedresult()
8.8.5 叶结点加入多点会话
--wsajoinleaf()
8.8.6 终止套接口上的数据接收
--wsarecvdisconnect()
8.8.7 终止套接口上的数据发送
--wsasenddisconnect()
本章小结
习题
第9章 高级网络编程api
9.1 mfc提供的winsock类
9.1.1 casyncsocket类
9.1.2 csocket类
9.2 信报api(mapi)
9.2.1 mapi的结构
9.2.2 mfc对mapi的支持
9.2.3 mapi的高级应用
9.2.4 通用信报调用cmc
9.3 wininet api
9.3.1 wininet概述
9.3.2 基本wininet函数
9.3.3 ftp客户机wininet函数
9.3.4 http客户机wininet函数
9.3.5 mfc wininet类及其应用方法
9.4 其他网络程序设计api
9.4.1 isapi简介
9.4.2 tapi简介
本章小结
习题
第10章 网络程序设计实例
10.1 使用winsock api设计网络程序的实例
10.1.1 程序源代码
10.1.2 程序运行结果
10.2 使用mfc类库进行网络程序设计的实例
10.2.1 创建客户端程序
10.2.2 创建服务器端程序
10.3 基于wininet api的客户程序编写实例
10.3.1 应用程序说明
10.3.2 建立应用程序的用户操作界面
10.3.3 应用程序代码及其说明
10.4 原始套接口(sock_raw)程序设计实例
10.4.1 原始套接口简介
10.4.2 原始套接口程序设计实例
10.5 广播通信与组播通信程序设计实例
10.5.1 广播通信程序设计
10.5.2 组播通信程序设计
习题
1.1 internet中的"世界语"--tcp/ip协议
1.1.1 internet--"冷战"的产物
1.1.2 网络互联促成了tcp/ip协议的产生
1.2 tcp/ip协议的体系结构
1.2.1 网络体系结构的概念
1.2.2 tcp/ip协议的四个层次
1.2.3 tcp/ip协议模型中的操作系统边界和地址边界
1.3 tcp/ip协议的工作过程
1.3.1 tcp/ip协议通信模型
1.3.2 数据的封装与传递过程
本章小结
习题
第2章 ip协议
2.1 ip协议如何进行网络互联
2.1.1 网络互联方式
2.1.2 ip互联网原理
2.1.3 ip协议的地位与ip互联网的特点
2.2 ip地址
2.2.1 ip地址的结构
.2.2.2 ip地址的表示格式
2.2.3 ip地址的分类
2.2.4 一些有特殊用途的ip地址
2.2.5 子网与子网掩码
2.3 ip数据报格式
2.3.1 ip数据报各字段的功能
2.3.2 ip数据报分片与重组
2.3.3 ip数据报选项
2.4 internet控制报文协议(icmp)
2.4.1 icmp报文的封装与格式
2.4.2 icmp差错报文
2.4.3 icmp控制报文
2.4.4 icmp请求与应答报文
2.5 地址解析
2.5.1 arp协议
2.5.2 rarp协议
2.6 ip数据报的路由选择
2.6.1 路由表
2.6.2 路由选择算法
2.6.3 路由表的建立与刷新
2.6.4 路由选择协议
本章小结
习题
第3章 传输层协议udp和tcp
3.1 端到端通信和端口号
3.1.1 端到端通信
3.1.2 传输层端口的概念
3.2 用户数据报协议udp
3.2.1 udp数据报的封装及其格式
3.2.2 udp校验和的计算方法
3.2.3 udp协议的特点
3.3 传输控制协议tcp
3.3.1 tcp报文段格式
3.3.2 tcp连接的建立与关闭
3.3.3 tcp的流量控制和拥塞控制机制
3.3.4 tcp的超时重发机制
3.4 tcp与udp的比较
本章小结
习题
第4章 tcp/ip应用层常用协议
4.1 telnet协议
4.1.1 远程登录
4.1.2 telnet的工作原理
4.1.3 网络虚拟终端(nvt)的概念
4.1.4 telnet协议选项协商
4.1.5 telnet协议选项协商实例
4.2 文件传输协议ftp
4.2.1 ftp简介
4.2.2 ftp支持的文件类型和文件结构
4.2.3 ftp的工作原理
4.2.4 ftp命令和应答
4.2.5 ftp工作实例
4.3 电子邮件的工作原理及其协议
4.3.1 tcp/ip协议下e-mail的工作原理
4.3.2 smtp协议原理与工作实例
4.3.3 pop3协议原理与工作实例
4.3.4 电子邮件报文的格式与实例
4.3.5 多用途因特网邮件扩展mime
4.4 文本传输协议http
4.4.1 万维网的工作过程
4.4.2 超文本传输协议http与应用实例
本章小结
习题
第5章 tcp/ip协议代码实例分析
5.1 tcp/ip报文时序模型
5.2 报文代码及其分析
习题
第6章 网络程序设计基本知识
6.1 网络应用程序的概念
6.1.1 什么是网络应用程序
6.1.2 网络应用程序的标识问题
6.1.3 客户朋艮务器模型
6.2 tcp/ip应用程序工作模型与网络编程接口
6.2.1 tcp/ip应用程序工作模型
6.2.2 windows sockets简介
6.2.3 windows sockets规范的目标及几个相关的概念
6.3 套接口的概念及其编程原理
6.3.1 套接口(socket)
6.3.2 套接口的分类
6.3.3 套接口编程原理
6.3.4 winsock套接口编程时对错误的处理机制
6.3.5 网络字节顺序
6.4 winsock api基本函数--套接口与连接的建立
6.4.1 打开winsock--wsastartup()
6.4.2 创建套接口--socket()或wsasocket()
6.4.3 指定本地地址--bind()
6.4.4 监听连接--listen()
6.4.5 请求连接--connect()或wsaconnect()
6.4.6 接受连接--accept()或wsaaccept()
6.5 winsock api基本函数--数据传输
6.5.1 带外数据的概念
6.5.2 在已建立连接的套接口上发送数据
--send()或wsasend()
6.5.3 在已建立连接的套接口上接收数据
--recv()或wsarecv()
6.5.4 在无连接的套接口上接收数据
--recvfrom()或wsarecvfrom()
6.5.5 在无连接的套接口上发送数据
--sendto()或wsasendto()
6.6 winsock api基本函数--连接与
套接口的关闭
6.6.1 关闭读写通道--shutdown()
6.6.2 关闭套接口--closesocket()
6.6.3 终止使用winsock
--wsacleanup()
本章小结
习题
第7章 tcp/ip网络程序框架与实例
7.1 网络应用程序的基本工作流程
7.1.1 面向连接的客户/服务器程序工作流程
7.1.2 无连接的客户/服务器程序工作流程
7.2 基于tcp的客户/服务器通信程序实例
7.2.1 实例程序说明
7.2.2 服务器端程序
7.2.3 客户端程序
7.2.4 程序执行结果
7.3 基于udp的客户与服务器通信程序实例
7.3.1 实例程序说明
7.3.2 服务器端程序
7.3.3 客户端程序
7.3.4 程序执行结果
本章小结
习题
第8章 winsock api
8.1 字节排序函数
8.1.1 4字节主机字节顺序的数转化为
网络字节顺序--htonl()和wsahtonl()
8.1.2 2字节主机字节顺序的数转化为
网络字节顺序--htons()和wsahtons()
8.1.3 4字节网络字节顺序的数转化为
主机字节顺序--ntohl()和wsantohl()
8.1.4 2字节网络字节顺序的数转化为
主机字节顺序--ntohs()和wsantohs()
8.2 ip地址转换函数
8.2.1 点分十进制数表示的ip地址转换
为网络字节顺序的ip地址
--inet_addr()
8.2.2 网络字节顺序的ip地址转换为
点分十进制数表示的ip地址
--inet_ntoa()
8. 3 网络信息获取函数(数据库函数)
8.3.1 获得主机名--gethostname()
8.3.2 获得与套接口相连的远程协议地址
--getpeername()
8.3.3 获得套接口本地协议地址
--getsockname()
8.3.4 根据主机名取得主机信息
--gethostbyname()或
wsaasyncgethostbyname()
8.3.5 根据主机地址取得主机信息
--gethostbyaddr()或
wsaasyncgethostbyaddr()
8.3.6 根据协议名取得主机协议信息
--getprotobyname()或
wsaasyncgetprotobyname()
8.3.7 根据协议号取得主机协议信息
---getprotobynumber()或
wsaasyncgetprotobynumber()
8.3.8 根据服务名取得相关服务信息
---getservbyname()或
wsaasyncgetservbyname()
8.3.9 根据端口号取得相关服务信息
--getservbyport()或
wsaasyncgetservbyport()
8.3.10 网络信息获取函数应用实例
8.4 套接口选项函数
8.4.1 套接口选项函数说明
8.4.2 sol_socket选项级别
8.4.3 ipproto_ip选项级别
8.4.4 ipproto_tcp选项级别
8.4.5 套接口属性设置和获取实例
8.5 套接口i/o处理函数
8.5.1 阻塞与非阻塞通信方式
8.5.2 设置套接口的工作方式
--ioctlsocket()和wsaioctl()
8.5.3 套接口i/o状态查询--select()
8.5.4 异步事件通知
--wsaasyncselect()
8.5.5 取消正在执行的阻塞调用
--wsacancelblockingcall()
8.5.6 判断是否有阻塞调用
--wsaisblocking()
8.5.7 取消未完成的一个异步操作
--wsacancelasyncrequest()
8.6 事件对象i/o管理
8.6.1 创建事件对象
--wsacreateevent()
8.6.2 网络事件注册
--wsaeventselect()
8.6.3 事件对象状态复位
--wsaresetevent()
8.6.4 事件对象状态置位
--wsasetevent()
8.6.5 关闭事件对象
--wsacloseevent()
8.6.6 等待事件对象
--wsawaitformultipleevents()
8.6.7 网络事件查询
--wsaenumnetworkevents()
8.6.8 事件对象i/o管理程序实例
8.7 错误处理函数
8.7.1 获得错误操作代码
--wsagetlasterror()
8.7.2 设置错误操作代码
--wsasetlasterror()
8.8 winsock 2支持的其他函数
8.8.1 共享套接口
--wsaduplicatesocket()
8.8.2 获取传送协议信息
--wsaenumprotocols()
8.8.3 初始化服务质量
--wsagetqosbyname()
8.8.4 返回重叠操作结果
--wsagetoverlappedresult()
8.8.5 叶结点加入多点会话
--wsajoinleaf()
8.8.6 终止套接口上的数据接收
--wsarecvdisconnect()
8.8.7 终止套接口上的数据发送
--wsasenddisconnect()
本章小结
习题
第9章 高级网络编程api
9.1 mfc提供的winsock类
9.1.1 casyncsocket类
9.1.2 csocket类
9.2 信报api(mapi)
9.2.1 mapi的结构
9.2.2 mfc对mapi的支持
9.2.3 mapi的高级应用
9.2.4 通用信报调用cmc
9.3 wininet api
9.3.1 wininet概述
9.3.2 基本wininet函数
9.3.3 ftp客户机wininet函数
9.3.4 http客户机wininet函数
9.3.5 mfc wininet类及其应用方法
9.4 其他网络程序设计api
9.4.1 isapi简介
9.4.2 tapi简介
本章小结
习题
第10章 网络程序设计实例
10.1 使用winsock api设计网络程序的实例
10.1.1 程序源代码
10.1.2 程序运行结果
10.2 使用mfc类库进行网络程序设计的实例
10.2.1 创建客户端程序
10.2.2 创建服务器端程序
10.3 基于wininet api的客户程序编写实例
10.3.1 应用程序说明
10.3.2 建立应用程序的用户操作界面
10.3.3 应用程序代码及其说明
10.4 原始套接口(sock_raw)程序设计实例
10.4.1 原始套接口简介
10.4.2 原始套接口程序设计实例
10.5 广播通信与组播通信程序设计实例
10.5.1 广播通信程序设计
10.5.2 组播通信程序设计
习题
TCP
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×