当前位置:首页 > 计算机网络 > 程序设计 > C#网络应用编程
出版社:人民邮电
出版日期:2010-2
ISBN:9787115219282
作者:马俊 编
页数:352页
作者简介
《C#网络应用编程(第2版)》主要介绍如何用C#开发Windows窗体网络应用程序。全书分3部分,第1部分(第1章~第4章)介绍网络编程预备知识,包括进程管理、多线程处理、IP地址转换、DNS、套接字、数据流、网络数据编码与解码等;第2部分(第5章~第9章)介绍协议类基本编程技术,包括TCP、UDP、FTP、HTTP、SMTP、POP3等应用编程技术;第3部分(第10章~第12章)介绍协议类应用开发技术,包括P2P应用开发、网络数据加解密技术等,最后用一个网络综合应用开发实例作为对《C#网络应用编程(第2版)》编程技术的总结。
《C#网络应用编程(第2版)》提供配套的PPT课件、所有例题与习题的源程序以及全部习题参考解答。
《C#网络应用编程(第2版)》可作为高等院校计算机及相关专业的教材,也可作为初、中级程序员的参考用书。
书籍目录
第1篇 预备知识 第1章 概述 1.1 VS2008开发环境与C#应用程序开发模型 1.1.1 开发环境与安装要求 1.1.2 C#应用程序开发模型 1.2 网络通信模式与网络协议 1.2.1 分散式、集中式与分布式 1.2.2 C/S模型 1.2.3 B/S模型 1.2.4 P2P模型 1.2.5 TCP/IP网络协议 习题 第2章 进程与线程 2.1 进程与线程的基本概念 2.2 进程管理(Process类) 2.2.1 获取进程信息 2.2.2 启动和停止进程 2.3 线程管理(Thread类) 2.3.1 前台线程与后台线程 2.3.2 线程的基本操作 2.3.3 Volatile关键字 2.3.4 在一个线程中访问另一个线程的控件 2.4 线程同步与线程池 2.4.1 线程的优先级 2.4.2 线程同步 2.4.3 lock语句 2.4.4 线程池 2.5 BackgroundWorker组件 习题 第3章 IP地址转换与网卡信息检测 3.1 IP地址转换与域名解析 3.1.1 IP地址与端口 3.1.2 IP地址转换相关类 3.1.3 域名解析 3.2 网卡信息与网络流量检测 3.2.1 网卡信息检测相关类 3.2.2 网络流量检测相关类 3.2.3 Ping及其相关类 3.3 网络数据编码与解码 3.3.1 Encoding类 3.3.2 Encoder类和Decoder类 习题 第4章 套接字与数据流 4.1 套接字 4.1.1 面向连接的套接字 4.1.2 无连接的套接字 4.2 数据流 4.2.1 文件流 4.2.2 内存流 4.2.3 网络流 4.2.4 StreamWriter类与StreamReader类 4.2.5 BinaryReader类与BinaryWriter类 习题 第2篇 网络协议类基本编程技术 第5章 TCP应用编程 5.1 TCP应用编程概述 5.1.1 TCP简介 5.1.2 TcpListener类与TcpClient类 5.1.3 TCP应用编程的一般步骤 5.1.4 TCP的无消息边界问题 5.2 利用同步TCP编写网络聊天程序 5.2.1 服务器端编程 5.2.2 客户端编程 5.3 利用同步TCP编写网络游戏 5.3.1 服务器端编程 5.3.2 客户端编程 5.4 异步TCP应用编程 5.4.1 异步设计模式概述 5.4.2 异步TCP应用编程的一般方法 5.4.3 使用异步方式调用同步方法 5.5 异步TCP编程举例 5.5.1 服务器端编程 5.5.2 客户端编程 习题 第6章 UDP应用编程 6.1 UDP与TCP的区别 6.2 UDP应用编程技术 6.2.1 UdpClient类 6.2.2 同步发送和接收数据 6.2.3 异步发送和接收数据 6.3 利用UDP进行广播和组播 6.3.1 广播和组播的基本概念 6.3.2 加入和退出组播组 6.3.3 利用广播和组播实现群发功能 6.4 利用UDP编写网络会议程序 习题 第7章 FTP应用编程 7.1 FTP概述 7.1.1 FTP的工作原理 7.1.2 FTP的数据传输方式 7.1.3 文件传输模式 7.2 FTP规范 7.2.1 FTP命令 7.2.2 FTP响应码 7.3 FTP编程相关类 7.3.1 FtpWebRequest类 7.3.2 FtpWebResponse类 7.3.3 NetworkCredential类 7.4 FTP编程举例 7.4.1 服务器端编程 7.4.2 客户端编程 习题 第8章 HTTP应用编程 8.1 HTTP简介 8.1.1 HTTP的特点 8.1.2 HTTP的请求与响应 8.2 HTTP编程相关类 8.2.1 WebRequest类和HttpWebRequest类 8.2.2 WebResponse类和HttpWebResponse类 8.2.3 Uri类 8.2.4 利用GET方法提交请求的数据 8.2.5 利用POST方法提交请求的数据 8.3 利用HTTP实现多线程文件下载 8.3.1 检测网络资源是否有效 8.3.2 设置下载数据的范围 8.3.3 多线程文件下载完整实现 习题 第9章 SMTP与POP3应用编程 9.1 SMTP简介 9.1.1 SMTP和ESMTP 9.1.2 与邮件服务器连接 9.1.3 邮件的发送过程 9.2 POP3简介 9.3 邮件收发相关的类 9.3.1 身份验证类(Network-Credential) 9.3.2 邮件地址类(MailAddress) 9.3.3 邮件信息类(MailMessage) 9.3.4 附件类(Attachment) 9.3.5 邮件发送类(SmtpClient) 9.3.6 邮件附加信息类 9.4 邮件收发举例 9.4.1 同步方式邮件收发处理 9.4.2 异步方式邮件收发处理 习题 第3篇 网络协议综合应用开发技术 第10章 P2P应用开发技术 10.1 P2P基本知识 10.1.1 Peer To Peer架构 10.1.2 P2P实现原理 10.2 对等名称解析协议 10.2.1 环境要求 10.2.2 对等节点名称和PNRP ID 10.2.3 群 10.2.4 PNRP名称注册与解析 10.3 PeertoPeer名称空间 10.3.1 Cloud类 10.3.2 PeerName类 10.3.3 PeerNameRegistration类 10.3.4 PeerNameResolver类 10.4 P2P视频聊天程序 10.4.1 Windows API摄像头接口 10.4.2 P2P视频聊天具体实现 习题 第11章 数据加密与解密技术 11.1 加密与解密相关的类 11.1.1 对称加密及其相关类 11.1.2 不对称加密及其相关类 11.1.3 加密流 11.1.4 密钥容器 11.2 加密与解密的具体实现 11.2.1 字符串的加密与解密 11.2.2 一般文件的加密与解密 11.2.3 XML文件的加密与解密 11.3 网络应用中数据的加密与解密 11.4 Hash算法与数字签名 习题 第12章 网络应用开发综合实例 12.1 单机图形图像绘制方法 12.1.1 将图形图像作为对象 12.1.2 鼠标事件处理 12.1.3 绘制任意大小的基本图形 12.1.4 绘制任意形状的曲线 12.1.5 绘制任意大小和方向旋转的文字 12.1.6 绘制任意大小的图像 12.1.7 句柄的设计和处理 12.1.8 鼠标指针状态控制 12.2 多机联合绘图架构设计 12.2.1 系统概述 12.2.2 类设计 12.2.3 主机与附机 12.3 多机联合绘图系统具体实现 12.3.1 画板设计 12.3.2 多机同步控制 12.3.3 绘图对象的序列化与反序列化 12.3.4 图像的打印和预览 12.3.5 导出图像 12.3.6 完整实现及扩展建议 习题
前言
网络应用编程是近年来非常流行的编程技术,很多高校都开设了对应的课程。本书第1版以高度的实用性和通俗易懂的讲解,受到读者的普遍欢迎。 本书在继承第1版教材特色的基础上,结合作者多年的教学经验和项目开发经验,并特别根据近几年教学改革的实践以及对人才培养的高标准要求,对其内容做了进一步的优化、补充和完善。第2版扩充了大量实用的内容,结构安排更紧凑,知识点的介绍也更加清晰、简洁、通俗易懂。另外,对学生不易理解的内容,做了更为详细的阐述。 全书共分12章,各章主要内容如下。 第1章介绍网络编程的调试开发环境、C#应用程序开发模型以及网络通信模式和网络协议,目的是让读者对网络应用编程有一个初步认识。 第2章介绍进程管理与多线程编程的基本用法,特别是多线程编程,是理解和学习后续章节的重要基础,要求读者必须掌握。 第3章介绍IP地址转换、域名解析、网卡信息检测以及网络数据编码和解码。其中,IP地址转换、域名解析是基础,数据编码和解码是网络通信中必不可少的环节,因此这一章也是编写网络应用程序的基础。 第4章主要介绍套接字和数据流的基本概念及用法,这些内容也是后续章节要用到的预备知识。 第5章和第6章介绍项目开发中使用最多的两种协议类应用编程方法,主要介绍最基本的应用编程技术,这两章也是本书学习的重点。特别是第5章的17CP应用编程,在实际应用项目中使用最多,要求读者必须理解和掌握。这两章学不好,其他章节的内容也很难学好。 第7章到第9章主要介绍封装后的其他常用协议。这些协议的基本应用编程方法是网络编程必不可少的技能。 第10章和第11章是在前面章节内容的基础上,进一步介绍更高级的开发技术。其中P2P技术是目前比较流行的网络应用技术之一,网络数据加解密技术是项目开发中必用的技术。 第12章介绍一个网络综合应用开发实例。该章内容是为了指导学生顺利完成设计型实验而编写的,各高校可以根据学生对相关知识的理解情况灵活掌握这一章的讲授学时和讲授时间。要求学生通过这一章的学习,使用TCP,分组实现网络相关软件的设计功能,但每组实现的设计内容中必须包含图形图像设计和网络传输功能。因为掌握了这两种技能,任何网络数据传输问题均可迎刃而解。设计型实验题目可以自选,以便充分发挥学生的才智,加深对高级网络应用编程的理解。 各高校在教学过程中,可以根据专业课程体系和学期总学时数,选取本书的全部或部分内容讲解,建议各章学时分配如下。
章节摘录
1.传统Windows应用程厚 传统Windows应用程序会修改注册表,编译后的可执行代码与操作系统紧密相关,升级也比较麻烦,随着网络技术和Internet的快速发展,这类应用程序越来越少。 2.智能客户端 智能客户端是对传统Windows应用程序的一大变革,它既保留了利用Windows窗体能设计复杂的界面,但又保持操作快速、方便的优点,同时又借鉴了Web应用程序升级方便的特点,与Web应用程序类似,智能客户端能自动检测存放在发布服务器上的客户端最新版本并自动升级。另外,由于智能客户端还能离线操作,因此它比只能在线操作的Web应用程序具有更大的灵活性。 生成智能客户端应用程序的过程非常简单,只需要在VS2008开发环境下选择发布功能即可。VS2008会自动生成发布网页,提供下载安装程序,当再次发布更新版本的应用程序时,客户端程序会自动升级,整个过程不需要程序员编写任何升级代码。 本书介绍的所有网络协议类的应用程序,其客户端安装程序均可以用智能客户端的形式发布到专用的Web服务器上,系统会自动提供下载客户端程序的链接。当需要升级客户端程序时,只需要重新发布新版本到Web服务器上即可,已经下载并安装过的客户端程序检测到有新版本发布时,会自动升级。 World Wind是美国航空航天管理局(NASA)用C#开发的开源三维地球天气查看软件,它采用的就是C#和Windows窗体智能客户端技术,程序运行界面如图1-1所示。利用该软件可以从外太空的角度观察地球上的任何一个地方,结合NASA的在线资料库,还可以查看各种卫星影像资料、监视世界各地灾害性事件、观察全球气温变化以及查看国家边界线和地名等。该软件是一个开源的软件,读者可以直接从NASA的网站上免费下载C#源程序。
图书封面