新書推薦:
《
花外集斠箋
》
售價:NT$
704.0
《
有兽焉.8
》
售價:NT$
305.0
《
大学问·明清经济史讲稿
》
售價:NT$
330.0
《
中国国际法年刊(2023)
》
售價:NT$
539.0
《
早点知道会幸福的那些事
》
售價:NT$
295.0
《
迈尔斯普通心理学
》
售價:NT$
760.0
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:NT$
1990.0
《
掌故家的心事
》
售價:NT$
390.0
|
編輯推薦: |
本书是一本讲解基于Windows Socket开发网络应用程序的教材,以Visual Studio 2010为平台,通过大量实例,全面系统地介绍基于WinSock进行网络编程的基本原理、基本方法和必需的知识。
|
內容簡介: |
本书是一本讲解基于Windows Socket开发网络应用程序的教材,以Visual Studi02010为平台,通过大量实例,全面系统地介绍基于WinSock进行网络编程的基本原理、基本方法和必需的知识。
|
關於作者: |
杨传栋,1969年11月出生,山东泰安人,山东农业大学信息学院副教授,网络工程专业专业主任,工学博士学位。从1995起在山东农业大学任教,主讲本科生《高级语言程序设计》、《计算机网络》、《计算机网络编程》等课程,参与编写教材多部。主要研究兴趣在计算机网络方面,包括因特网上的流媒体传输技术、计算机网络体系结构及P2P技术等方面,已在国内核心期刊发表多篇学术研究论文。
|
目錄:
|
第1章 计算机网络基础知识
1.1 计算机网络的基本概念
1.1.1 计算机网络与网络协议
1.1.2 计算机网络分类
1.1.3 典型的计算机网络以太网
1.1.4 广域网与分组交换技术
1.1.5 网络互联
1.1.6 计算机网络体系结构
1.2 IP协议
1.2.1 IP地址
1.2.2 IPv4的分组结构
1.2.3 路由与路由器
1.2.4 主机的路由表及IP分组的发送过程
1.3 TCP与UDP
1.3.1 端口号与网络进程地址
1.3.2 TCP
1.3.3 UDP
1.4 网络应用编程接口套接字
1.4.1 套接字编程接口的起源与发展
1.4.2 套接字的含义与分类
1.4.3 套接字接口的位置及实现方式
1.5 网络应用程序的结构模型
1.6 网络编程的不同层次
习题
第2章 简单的 Windows 程序设计
2.1 使用Visual C 创建应用程序
2.1.1 创建控制台应用程序
2.1.2 创建图形界面应用程序
2.2 Visual C的数据类型
2.2.1 基本数据类型
2.2.2 字符串类型
2.2.3 句柄类型
2.3 Unicode字符集
2.4 对话框应用程序
2.4.1 创建对话框应用程序
2.4.2 Visual C2017开发环境
2.4.3 MFC对话框应用程序结构
2.4.4 设置对话框的属性
2.5 Windows控件
2.5.1 创建控件
2.5.2 常用控件
2.6 Windows的消息驱动机制与消息映射
2.6.1 Windows的消息驱动机制
2.6.2 消息映射
2.7 使用控件变量访问控制控件
2.8 添加用户自定义消息
2.9 MFC的文件操作
2.9.1 CFile类
2.9.2 CFileDialog类
习题
实验1对话框应用程序的创建及控件使用
第3章 WinSock编程初步
3.1 WinSock API函数
3.2 WinSock开发组件和运行组件
3.3 网络字节顺序
3.4 WinSock的网络地址表示
3.4.1 地址结构
3.4.2 地址转换函数
3.5 WinSock的错误处理
3.6 网络配置信息查询
3.6.1 主机名字与IP地址查询
3.6.2 服务查询
3.6.3 协议查询
3.6.4 异步信息查询函数及其编程方法
习题
实验2查询主机网络配置信息
第4章 TCP程序设计
4.1 简单的TCP程序设计
4.1.1 TCP客户端和服务器端的交互过程
4.1.2 一个简单的TCP通信程序
4.2 获取与套接字关联的地址
4.3 数据发送和接收
4.3.1 发送缓冲区与接收缓冲区
4.3.2 对send函数和recv函数的进一步说明
4.3.3 数据的传输格式
4.4 文件传输程序设计
4.4.1 简单的文件传输
4.4.2 文件的断点续传与多点下载
习题
实验3使用流式套接字传输数据
第5章 Visual C中的多线程编程
5.1 进程和线程的概念
5.2 Visual C中的多线程编程
5.2.1 使用Win32 SDK函数实现多线程
5.2.2 C运行库中的多线程函数
5.3 用多线程实现TCP并发服务器
5.4 线程的同步与互斥
5.4.1 线程的同步
5.4.2 线程间的互斥
5.5 主监控线程和线程池
习题
实验4TCP服务器端的多线程编程
第6章 WinSock的IO模型
6.1 套接字的非阻塞工作模式
6.1.1 阻塞与非阻塞模式的概念
6.1.2 套接字非阻塞模式的设置方法
6.1.3 套接字非阻塞模式下的编程方法
6.2 Select模型
6.2.1 Select模型的工作机制
6.2.2 使用Select模型编程的方法
6.3 WSAAsyncSelect模型
6.3.1 WSAAsyncSelect函数
6.3.2 WSAAsyncSelect模型的编程方法
6.4 WSAEventSelect模型
6.4.1 WinSock中的网络事件与事件对象函数
6.4.2 WSAEventSelect模型的函数
6.4.3 WSAEventSelect模型的编程方法
6.5 重叠IO模型与完成端口模型简介
6.5.1 重叠IO模型
6.5.2 完成端口模型
习题
实验5WinSock的IO模型
第7章 UDP程序设计
7.1 数据报套接字编程的基本方法
7.1.1 客户服务器模式
7.1.2 常用的数据收发函数sendto与recvfrom
7.1.3 对等模式
7.1.4 使用WSAAsyncSelect模型
7.2 广播程序设计
7.2.1 套接字选项与setsockopt函数
7.2.2 广播数据的发送与接收
7.2.3 广播程序流程
习题
实验6数据报套接字编程
第8章 原始套接字编程
8.1 原始套接字及其功能
8.2 原始套接字的通信流程
8.2.1 创建原始套接字
8.2.2 使用原始套接字发送和接收数据
8.3 收发ICMP数据包
8.4 发送自定义的IP分组
8.5 捕获IP数据包
习题
实验7原始套接字编程
第9章 使用MFC的WinSock类编程
9.1 CAsyncSocket类
9.1.1 CAsyncSocket对象
9.1.2 CAsyncSocket类的使用
9.2 CSocket类
9.2.1 CSocket类概述
9.2.2 CArchive类与对象串行化
9.2.3 CSocketFile类
9.2.4 使用CSocket及串行化方法编写网络程序
习题
附录A常见的WinSock错误代码
参考文献
|
內容試閱:
|
本书第1版自2015年9月出版至今已四年有余。在这四年多时间里,基于WinSock的Windows网络编程技术,无论是WinSock本身还是所用的开发环境Visual C都有了很多新的发展。使用过第1版教材的许多教师和同学也提出了很多好的修改建议,为了进一步提高本书的质量以更好地适应技术发展和教学需求,我们对第1版进行了改版升级。
在保留第1版的基本结构和主要内容的基础上,本书主要做了如下修改。
(1) 编程环境由原来的VS 2010升级成VS 2017。
(2) 增加了getaddrinfo、inetntop等一些新函数的讲解,同时也保留了与它们功能相同的旧版函数的介绍。
(3) 根据一些任课教师和同学的建议,将一些初学者不常用且不容易理解和掌握的内容以及与网络编程这一主题关系不太大的内容做了删减,并重新设计了一些例题。
(4) 为了方便教师教学和学生学习,对每章的课后习题全部进行了重新设计,增加了第8章原始套接字的实验,并对其他的实验也进行了一些修改。
(5) 对一些表述不清甚至错误的内容进行了修改,力求简练精准。
本书参考学时为60学时,其中30学时为实验。
本书由杨传栋主持修订,范昊和徐洪丽负责编写了新增内容并重新设计了绝大多数的课后习题,杨传栋和张焕远对各章主要内容进行了修订。
感谢山东农业大学计算机系的领导和老师对本书编写工作的支持,同时也感谢清华大学出版社对本书出版的支持。
限于作者的水平和经验,书中疏漏与不足之处在所难免,恳请读者批评指正。
本书的配套课件、源码等教学资料可以从清华大学出版社网站www.tup.com.cn下载,读者在本书及资料的下载、使用中如遇到问题,请联系404905510@qq.com。
作者
2020年2月
第1版前言
随着计算机网络技术的飞速发展,以TCPIP网络技术为核心的因特网已成为支撑现代社会运行的基础设施之一,深入理解网络工作原理、了解网络协议工作细节、具有扎实的高层次网络应用开发能力已逐渐成为对IT从业者的基本要求。
然而,由于计算机网络技术复杂而抽象,在高校计算机类专业的人才培养中,单靠计算机网络一门课程的理论教学、相应的协议分析及组网实验,很难使学生真正理解掌握网络技术并具备开发以TCPIP为基础的网络应用程序的能力。为此,很多高校的计算机类专业都开设了TCPIP套接字网络编程课程,实践证明,将本课程与网络原理教学有机结合起来,不仅可以加深学生对网络原理及实现方法的理解,还可以使学生掌握网络编程的基本方法,逐步提高网络软件开发能力,培养学生的创新精神和自学能力。
本书就是作者在长期从事计算机网络和网络编程两门课程教学的经验基础之上,以作者自己编写的网络编程课程讲义为基础,不断完善改进而成。本书以Visual Studio 2010为平台,通过大量实例,全面系统地介绍了基于WinSock进行网络编程的基本原理、基本方法和必需的知识。学习本书内容之前,要求读者已学过C语言程序设计,熟悉面向对象程序设计的概念和方法。
本书在内容组织方面,除WinSock网络编程本身的原理和方法以及必要的计算机网络知识外,还有较大的篇幅用于讲解Windows编程的基本知识。这是因为目前多数应用型本科的教学都采用了3 1模式(前3年完成理论知识教学,最后1年集中实习实践),导致很多专业课的安排被提前,本课程一般被安排在第五学期甚至是第四学期学习,此时,大多数学生几乎还不具备Windows程序开发的任何知识和经验,程序编写能力不足。根据作者的经验,在讲解WinSock编程的同时,详尽地讲解相关的Windows编程的知识和方法,对降低学生学习难度、提高学习兴趣是很有帮助的。
全书共分为9章,第1章主要介绍计算机网络的基本概念和基本工作原理,以及网络程序的工作模式和编程方法等; 第2章介绍使用Visual C2010开发Windows应用程序的方法以及有关概念和基本原理,为后续各章的实例开发打好基础; 第3~8章由易到难逐步介绍流式套接字、数据报套接字以及原始套接字的编程方法和相关的Windows编程知识,并对网络通信中的多线程编程、IO模型以及IP分组的捕获分析等内容进行深入讲解,第9章介绍MFC提供的两个WinSock类CAsyncSocket类和CSocket类的使用方法。
本书系统性强,内容丰富,结构清晰,论述严谨,既突出基本原理和技术思想的讲解,也强调工程实践,适合作为网络工程、计算机科学与技术等计算机类专业的本科生教材,也可供对网络编程感兴趣的读者参考学习。
本书除两位署名作者外,李文杰和高葵也参加了本书部分编写工作,其中,李文杰编写了本书的第2章,高葵编写了本书的第5章。另外,感谢山东农业大学计算机系的各位老师对本书的支持。
限于作者的水平和经验,书中疏漏与不足之处在所难免,恳请读者批评指正。
作者
2015年2月
|
|