欢迎光临
免费的PDF电子书下载网站

C#网络程序开发(第二版) PDF下载

编辑推荐

《C#网络程序开发(第二版)》涵盖C#网络程序开发的理论、实验和课程设计。课程设计部分包括课程设计目的求和题目等。实验部分以理论课例程为基础进行扩展和提高,有利于激发学习兴趣。

 ;

内容简介

本书是C#网络程序开发的经典教材,涵盖C#网络程序开发的理论、实验和课程设计。全书共包含五大部分:*部分为C#网络程序开发基础,包括网络程序开发基础知识和C#网络程序开发基础; 第二部分为C#网络传输程序开发,包括TCP、UDP和P2P网络程序开发技术; 第三部分为Internet应用程序开发,包括FTP、电子邮件、HTTP和Web Service网络程序开发技术; 第四部分为C#网络程序开发实践,包括TCP、UDP、P2P、FTP、电子邮件、HTTP和Web Service网络程序开发实践; 第五部分为C#网络程序开发课程设计,包括课程设计目的、题目及要求、考核方式。 本书遵循由浅入深、逐步深入的原则,实验以理论课例程为基础进行扩展和提高,有利于激发学习兴趣,增强学习的自信心和成就感,进而牢固地掌握网络程序开发技术。本书提供了配套的课件和源程序。 本书可作为高等院校计算机及相关专业的教材,也可作为信息技术领域教师、学生和工程技术人员的参考书。

作者简介

暂无

C#网络程序开发(第二版) PDF下载

目录

目录

第一部分C#网络程序开发基础
第1章C#网络程序开发基础知识

1.1网络通信模型及分类

1.1.1分散式、集中式与分布式系统

1.1.2C/S、B/S与P2P网络通信架构

1.2TCP/IP网络模型及协议

1.2.1TCP/IP网络架构

1.2.2TCP协议和UDP协议

1.2.3IP协议

1.3网络程序通信机制

1.3.1端口与套接字

1.3.2基于套接字的网络进程通信机制

第2章C#网络程序开发基础

2.1Visual Studio.NET集成开发环境概述

2.2开发环境的安装与常见C#网络编程简介

2.2.1开发环境的安装

2.2.2C#网络编程简介

2.3C#.NET网络程序开发基本类

2.3.1IPAddress类

2.3.2IPHostEntry类

2.3.3IPEndPoint类

2.3.4Dns类

2.3.5Ping及相关类

2.4C#套接字与网络流

2.4.1Socket类

2.4.2套接字的类型与使用方法

2.4.3网络流

2.4.4网络数据编码与解码

2.5多线程技术

2.5.1多线程概述

2.5.2多线程的创建与使用

2.5.3多线程的同步

2.5.4线程池的概念与使用方法

第二部分C#网络传输程序开发
第3章TCP网络程序开发

3.1TCP程序开发主要技术

3.1.1使用套接字进行TCP传输

3.1.2使用TCP类进行网络传输

3.1.3同步与异步

3.2基于同步TCP的网络聊天程序开发

3.2.1功能介绍及界面设计

3.2.2服务器程序编写

3.2.3客户端程序编写

3.3基于异步TCP的网络聊天程序开发

3.3.1异步程序编程方法

3.3.2界面设计

3.3.3服务器端程序编写

3.3.4客户端程序编写

第4章UDP网络程序开发

4.1UDP程序开发的主要技术

4.1.1UDP与TCP的区别与优势

4.1.2使用UDP类进行网络传输

4.1.3UDP下的同步与异步通信

4.2UDP的广播与组播程序开发

4.2.1广播与组播的基本概念

4.2.2组播组的加入与退出

4.3基于广播和组播的网络会议程序开发

4.3.1功能介绍及页面设计

4.3.2程序实现代码

第5章P2P网络程序开发

5.1P2P基础知识

5.1.1P2P的发展历程

5.1.2P2P的架构

5.1.3P2P通信步骤

5.2.NET下的P2P程序开发

5.2.1对等名称解析协议

5.2.2PeerToPeer命名空间

5.3P2P资源注册与发现程序开发

5.3.1P2P资源发现过程

5.3.2P2P资源注册程序开发

5.3.3P2P资源发现程序开发

第三部分Internet应用程序开发
第6章FTP网络程序开发

6.1FTP原理及规范

6.1.1FTP概述

6.1.2FTP工作原理和数据传输

6.1.3FTP规范

6.2FTP程序开发相关类

6.2.1FtpWebRequest类

6.2.2FtpWebResponse类

6.2.3NetworkCredential类

6.3编写FTP的文件上传下载器

6.3.1FTP服务器的配置

6.3.2功能介绍及界面设计

6.3.3上传文件程序开发实现

6.3.4下载文件程序开发实现

第7章SMTP与POP3网络程序开发技术

7.1邮件发送与接收协议

7.1.1邮件发送与SMTP协议

7.1.2邮件接收与POP3协议

7.1.3.NET下的邮件收发相关类

7.2邮件客户端程序开发实现

7.2.1功能介绍及页面设计

7.2.2邮件发送模块程序开发实现

7.2.3邮件接收模块程序开发实现

第8章基于HTTP的Web程序开发技术

8.1HTTP简介

8.1.1HTTP工作原理及特点

8.1.2HTTP协议

8.2.NET下的HTTP程序开发技术

8.2.1HTTP程序开发相关类

8.2.2Web中的数据提交

8.2.3Web数据交换举例

8.3编写HTTP下的多线程文件下载器

8.3.1网络资源有效性检测

8.3.2使用多线程下载文件

第9章Web Service程序开发技术

9.1Web Service技术概述

9.1.1Web Service基本概念

9.1.2Web Service的优势与短处

9.1.3Web Service的架构

9.2创建和使用Web服务

9.2.1创建Web服务

9.2.2调用Web服务

9.3Web Service实用程序开发举例

9.3.1使用Web Service编写天气预报程序

9.3.2使用Web Service查询股票行情

第四部分C#网络程序开发实践
实验一C#网络程序开发基础——使用多线程扫描主机及端口

实验二TCP程序开发实践——C/S模式的局域网聊天程序开发

实验三UDP程序开发实践——局域网视频聊天程序开发

实验四P2P程序开发实践——双人对战五子棋

实验五FTP程序开发实践——编写自己的FTP服务器

实验六电子邮件程序开发实践——电子邮件客户端

实验七HTTP程序开发实践——编写自己的简单Web浏览器

实验八Web Service程序开发实践——学生网络选课管理程序

第五部分C#网络程序开发课程设计
参考文献


前沿

前言

随着计算机网络的日益普及,各种计算机网络程序已深入到大众生活的方方面面,使得网络程序开发成为程序开发的一个非常重要的方向,近年来很多高校也都开设了网络程序开发的相关课程。Visual C#是微软公司在吸取Java和C 优点的基础上研发的面向对象的程序设计语言,非常适合各种网络应用程序的开发。由于PC用户90%以上仍使用Windows操作系统,因此Visual C#成为PC上网络软件开发的首选。
本书涵盖C#网络程序开发的理论、实验和课程设计。
全书共包含五大部分,内容如下。
第一部分C#网络程序开发基础(包括网络程序开发基础知识和C#网络程序开发基础)。
第二部分C#网络传输程序开发(包括TCP、UDP和P2P网络程序开发技术)。
第三部分C# Internet应用程序开发(包括FTP、电子邮件、HTTP和Web Service网络程序开发技术)。
第四部分C#网络程序开发实践(包括TCP、UDP、P2P、FTP、电子邮件、HTTP和Web Service网络程序开发实践)。
第五部分C#网络程序开发课程设计(包括课程设计目的、题目及要求、考核方式)。
本书由重庆理工大学何波、傅由甲主编。
本书可作为高等院校计算机及相关专业的教材,也可作为信息技术领域教师、学生和工程技术人员的参考书。
在本书的编写过程中参考了国内外相关教材和著作,在此向文献作者表示真诚的感谢。由于编者水平有限,书中难免存在错误或不妥之处,恳请读者批评指正。

编者
2018年9月

免费在线读

第3章TCP网络程序开发
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接(连接导向)的、可靠的、基于字节流的、全双工的传输层(transport layer)通信协议。在简化的计算机OS模型中,TCP位于IP层之上,用于完成传输层的指定功能。TCP的工作过程与人们日常生活中的打电话相似,要经过建立连接、传输数据和连接终止3个步骤。

3.1TCP程序开发主要技术

TCP程序开发的主要技术有使用套接字进行TCP传输、使用TCP类进行网络传输和TCP同步异步等。
3.1.1使用套接字进行TCP传输
套接字分为两种: 一种是面向连接的(connectionoriented)套接字,另一种是无连接的(connectionless)套接字。使用TCP协议编程的套接字是面向连接的,通过它建立两个IP地址端点之间的会话,一旦建立了这种连接就可以在设备之间进行可靠传输。
根据连接的启动方式和本地套接字要连接的目标,套接字的连接过程可分为以下3个阶段:
(1) 服务器监听: 是指服务器套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。

图31面向连接的套接字编程

(2) 客户端请求: 是指由客户端的套接字提出连接请求,要连接的目标是服务器的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器套接字的地址和端口号,然后再向服务器套接字提出连接请求。
(3) 连接确认: 是指当服务器套接字监听到客户端套接字的连接请求时,它就响应客户端套接字的请求,把服务器套接字的信息发给客户端,一旦客户端确认了此信息,连接即可建立。而服务器套接字继续监听其他客户端套接字的连接请求。面向连接的套接字编程框架如图31所示。
1. 建立连接
服务器和客户端通信的前提是服务器首先在指定的端口监听是否有客户端的连接请求,当客户端向服务器发起连接请求并被服务器接收后,双方即可建立连接。
(1) 服务器编程。在服务器程序中,首先创建一个本地套接字对象。例如:

Socket localSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
然后将套接字绑定到用于TCP通信的本地IP地址和窗口上。Bind方法用于完成绑定工作。例如:

IPHostEntry local=Dns.GetHostByName(Dns.GetHostName());

IPEndPoint iep=new IPEndPoint(local.AddressList[0], 1180);

localSocket.Bind(iep);
将套接字与端口绑定后,就用Listen方法等待客户端发出连接尝试。例如:

locatSocket.Listen(10);
Listen方法自动将客户端连接请求放到请求队列中,参数指出系统等待用户服务程序排队的连接数,超过连接数的任何客户端都不能与服务器进行通信。
在Listen方法执行之后,服务器已经做好了接收任何连接的准备。这时,可用Accept方法从请求队列中获取连接。例如:

localSocket.Accept();
程序执行到Accept方法时被阻塞,直到接收到客户端的连接请求后才继续执行下一条语句。服务器一旦接收了客户端的连接请求,Accept方法立即返回一个与客户端通信的新的套接字。该套接字中既包含了本机的IP地址和端口号,也包含了客户端的IP地址和端口号。然后就可以利用此套接字与该客户端进行通信了。
(2) 客户端编程。客户端利用Socket的Connect方法向远程主机的端点发起连接请求,并将自身绑定到系统自动分配的端点上。例如:

IPAddress remoteHost=IPAddress.Parse("192.168.0.1");

IPEndPoint iep=new IPEndPoint(remoteHost, 1180);

Socket localSocket=new Socket( AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

localSocket.Connect(iep);
程序运行后,客户端与服务器端建立连接之前,系统不会执行Connect语句下面的语句,而是处于阻塞状态,直到连接成功或出现异常为止。
2. 发送和接收消息
一旦客户端与服务器建立连接,客户机和服务器都可以使用Socket对象的Send和Receive方法进行通信。

(1) 服务器编程。当服务器接收客户端的连接请求成功时,Accept方法返回包含该客户端IP地址及端口号信息的套接字。服务器可以用该套接字与客户端通信。

Socket clientSocket=localSocket.Accept();

//建立连接后,利用Send方法向客户端发送信息

clientSocket.Send(Encoding.ASCII.GetBytes("server send Hello"));

//接收客户端信息

byte[] myresult=new Byte[1024];

int receiveNum=clientSocket.Receive(myresult);

Console.WriteLine("接收客户端信息:{0}",Encoding.ASCII.GetString(myresult));


(2) 客户端编程。客户端可直接使用本地套接字的Send方法向服务器发送信息,利用Receive方法接收服务器信息。

localSocket.Connect(iep);

//建立连接成功后,向服务器发送信息

string sendMessage="client send Message Hello" DateTime.Now;

localSocket.Send(Encoding.ASCII.GetBytes(sendMessage));

Console.WriteLine("向服务器发送信息:{0}", sendMessage);

//接收服务器信息

byte[] result=new Byte[1024];

localSocket.Receive(result);

Console.WriteLine("接收服务器信息:{0}", Encoding.ASCII.GetString(result));

C#网络程序开发(第二版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:C#网络程序开发(第二版)