第13章 C# 网络应用编程技术_第1页
第13章 C# 网络应用编程技术_第2页
第13章 C# 网络应用编程技术_第3页
第13章 C# 网络应用编程技术_第4页
第13章 C# 网络应用编程技术_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-6-21网络应用编程技术网络应用编程技术总体要求总体要求l了解了解C#网络编程的一般方法。网络编程的一般方法。l掌握掌握System.Net和和System.Net.Sockets命名空间中常用命名空间中常用类的使用方法。类的使用方法。l了解利用了解利用HTTP、TCP和和UDP协议进行网络通信编程的一协议进行网络通信编程的一般方法。熟练通过这些协议编写简单的客户端和服务端应般方法。熟练通过这些协议编写简单的客户端和服务端应用程序。用程序。l理解理解Socket编程的通信方式,熟练应用编程的通信方式,熟练应用Socket完成同步完成同步和异步方式下的网络通信编程。和异步方式下的网络通

2、信编程。l掌握利用掌握利用SMTP与与POP3协议完成电子邮件发送和接收的协议完成电子邮件发送和接收的一般方法,并能编写简单的的应用程序一般方法,并能编写简单的的应用程序学习重点学习重点l掌握掌握System.Net和和System.Net.Sockets命名空间中常用类命名空间中常用类的使用方法。的使用方法。l利用利用HTTP、TCP和和UDP协议进行网络通信编程协议进行网络通信编程l熟练应用熟练应用Socket完成同步和异步方式下的网络通信编程完成同步和异步方式下的网络通信编程l熟练应用熟练应用SMTP与与POP3协议完成电子邮件的发送和接收编程协议完成电子邮件的发送和接收编程学习难点学习

3、难点lSystem.Net和和System.Net.Sockets命名空间中常用类的使命名空间中常用类的使用方法用方法l理解多线程编程,熟练使用多线程进行网络编程理解多线程编程,熟练使用多线程进行网络编程l异步模式下的网络应用程序编写异步模式下的网络应用程序编写2022-6-24网络应用编程技术网络应用编程技术网络编程基础网络编程基础Socket编程编程电子邮件的发送和接收电子邮件的发送和接收2022-6-25网络编程基础网络编程基础l13.1.1 计算机网络的概述计算机网络的概述l13.1.2 计算机网络的通信协议计算机网络的通信协议l13.1.3 System.Net概述概述13.1.1

4、计算机网络的概述计算机网络的概述1. 什么是计算机网络什么是计算机网络l计算机网络是指由地理上分散的、具有独立功计算机网络是指由地理上分散的、具有独立功能的多个计算机系统,以通信设备和线路互相能的多个计算机系统,以通信设备和线路互相连接,并配以相应的网络软件,以实现通信和连接,并配以相应的网络软件,以实现通信和资源共享的系统。资源共享的系统。2. 计算机网络的分类计算机网络的分类l局域网、城域网、广域网和互联网局域网、城域网、广域网和互联网。13.1.2 计算机网络的通信协议计算机网络的通信协议1.TCP/IP2. IP地址地址l32位的二进制位的二进制数数,为了便于记忆,为了便于记忆,被被分

5、为分为4组,每组组,每组8位,由小数点分开,每位,由小数点分开,每组写组写成十进制形式成十进制形式,其值位,其值位于于0255之间之间。例。例如如:3. URLl格式:格式: protocal:/domain/pathl例如:例如:http:/13.1.3 System.Net概述概述1IPAddress类与类与Dns类类l前者具有前者具有IP地址的转换、处理等功能。地址的转换、处理等功能。l例如:例如:lIPAddress ip = IPAddress.Parse();l后者后者可以把主机名解析为可以把主机名解析为IP地址,地址, 或者把或者把IP

6、地址解地址解析为主机名析为主机名。l例如:例如:lIPAddress ip=Dns.GetHostAddresses();lstring hostname = Dns.GetHostName();2IPHostEntry类类lIPHostEntry类的实例对象中包含了类的实例对象中包含了Internet主机的相关信主机的相关信息。息。l常用属性:常用属性:AddressList和和HostName例如:例如:IPAddress ip;Ip= Dns.GetHostEntry().AddressList; ip= Dns.GetHostEntry(Dns.GetHostName().Addres

7、sList3IPEndPoint类类l要与远程主机进行通信,仅有要与远程主机进行通信,仅有IP地址是不够的。地址是不够的。在在Internet中,中,TCP/IP使用一个网络地址和一个服使用一个网络地址和一个服务端口号来唯一标识设备和服务。网络地址标识务端口号来唯一标识设备和服务。网络地址标识网络上的设备;端口号标识该设备上的特定服务网络上的设备;端口号标识该设备上的特定服务。网络地址和服务端口的组合称为端点。网络地址和服务端口的组合称为端点。l在在C#中,使用中,使用IPEndPoint类表示这个端点,该类类表示这个端点,该类包含了应用程序连接到主机上的服务所需的包含了应用程序连接到主机上的

8、服务所需的IP地地址和端口信息。址和端口信息。lIPEndPoint类常用的构造函数为:类常用的构造函数为:public IPEndPoint(IPAddress, int);操作演示:操作演示:【实例【实例13-1】使用上】使用上述四个类完成如图述四个类完成如图13-3和和13-4所示的应用所示的应用程序功能,单击程序功能,单击“显显示本机示本机IP信息信息”按钮按钮可以显示主机名及相可以显示主机名及相关的关的IP地址;单击地址;单击“显示服务器信息显示服务器信息”按按钮可以显示在文本框钮可以显示在文本框中输入的服务器的中输入的服务器的IP地址信息。地址信息。源代码见教材源代码见教材4Web

9、Client类类l它它提供向提供向URI标识的资标识的资源发送数据以及从这源发送数据以及从这些资源接收数据的公些资源接收数据的公共方法。共方法。l主要属性是主要属性是BaseAddress,用于,用于定义定义WebClient发出的发出的请求的基地址。请求的基地址。l常用方法常用方法如如右右表表所所示示操作演示操作演示【实例【实例13-2】使用】使用WebClient类类logo_png.png文件下文件下载到本地磁盘,载到本地磁盘,logo_png.png 文件的文件的URI为为“http:/ lWebRequest和和WebResponse类是类是.NET Framework的请求的请求/

10、响应模型的抽象类响应模型的抽象类。操作演示操作演示【实例【实例13-3】使用使用】使用使用FtpWebRequest和和FtpWebResponse实现一个简单的实现一个简单的Ftp客户端客户端,完成连接、下载文件和更换目录的功能。,完成连接、下载文件和更换目录的功能。源代码见教材源代码见教材13.2 Socket编程编程l13.2.1 Socket编程概述编程概述l13.2.2 TCP应用编程应用编程l13.2.3 UDP应用编程应用编程13.2.1 Socket编程概述编程概述lSocket通常也称作通常也称作“套接字套接字”,是支持,是支持TCP/IP协议的网络通信的基本操作单元。协议的

11、网络通信的基本操作单元。l Socket是不同主机间的进程进行双向通信是不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的端点,它构成了单个主机内及整个网络间的编程界面。的编程界面。l在在Internet上的主机一般运行了多个服务软上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一件,同时提供几种服务。每种服务都打开一个个Socket,并绑定到一个端口上,不同的,并绑定到一个端口上,不同的端口对应于不同的服务。端口对应于不同的服务。1Socket工作原理工作原理l通信时通信时套接字之间套接字之间需要建立需要建立连接连接,过程过程如下:如下:lS1:服务器监听:

12、服务器端套接字等待客户端套接字服务器监听:服务器端套接字等待客户端套接字连接连接请求请求。lS2:客户端请求:客户端套接字提出连接请求。为此客户端请求:客户端套接字提出连接请求。为此,它它必须首先描述连接必须首先描述连接目标,即目标,即指出服务器端套接字指出服务器端套接字的地址和端口号,然后再向服务器端套接字提出连接的地址和端口号,然后再向服务器端套接字提出连接请求。请求。lS3:连接确认:当服务器端套接字监听到连接请求时连接确认:当服务器端套接字监听到连接请求时,它建立一个新的线程,把服务器端套接字的信息发,它建立一个新的线程,把服务器端套接字的信息发给客户端,一旦客户端确认了此信息,连接即

13、可建立给客户端,一旦客户端确认了此信息,连接即可建立。而服务器端套接字继续处于监听状态,继续接收其。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。他客户端套接字的连接请求。2Socket编程的通信方式编程的通信方式(1) 同步套接字同步套接字(2) 异步套接字异步套接字3Socket类类lSocket类包含在类包含在System.Net.Sockets命名空间中,命名空间中,一个一个Socket实例包含了一个本地或者一个远程端点的实例包含了一个本地或者一个远程端点的套接字信息。套接字信息。lSocket类的构造函数为:类的构造函数为:lpublic Socket(Add

14、ressFamily addressFamily, SocketType socketType, ProtocolType protocolType);4面向连接的套接字面向连接的套接字5无连接的套接字无连接的套接字13.2.2 TCP应用编程应用编程1TcpListener类类l用于监听和接收传入的连接请求。该类的构造函数有:用于监听和接收传入的连接请求。该类的构造函数有:l(1) TcpListener(IPEndPoint iep)l(2) TcpListener(IPAddress localAddr, int port)lTcpListener的的同步方法同步方法:AcceptTcp

15、ClientAcceptSocketStartStop2TcpClient类类l利用利用TcpClient类提供的方法,可以通过网络进行类提供的方法,可以通过网络进行连接、发送和接收网络数据流。连接、发送和接收网络数据流。l该类的构造函数有四种重载形式:该类的构造函数有四种重载形式:l(1) TcpClient()l(2) TcpClient(AddressFamily family)l(3) TcpClient(IPEndPoint iep)l(4) TcpClient(string hostname,int port)l表表13-5和表和表13-6列出了列出了TcpClient类的常用属性

16、和类的常用属性和方法方法(见教材)(见教材)3同步同步TCP应用编程应用编程l操作演示:操作演示:【实例【实例13-4】使用使用】使用使用TcpListener和和TcpClient实现服务端和客户端通信的小程实现服务端和客户端通信的小程序。序。源代码见教材源代码见教材4异步异步TCP应用编程应用编程l对于执行完成时间可能较长的任务,如传送大文件等,使对于执行完成时间可能较长的任务,如传送大文件等,使用同步操作可能就不太合适了,这种情况下,最好的办法用同步操作可能就不太合适了,这种情况下,最好的办法是使用异步操作。是使用异步操作。l所谓异步操作方式,就是我们希望让某个工作开始以后,所谓异步操作

17、方式,就是我们希望让某个工作开始以后,能在这个工作尚未完成的时候继续处理其他工作。能在这个工作尚未完成的时候继续处理其他工作。l异步操作的最大优点是可以在一个操作没有完成之前同时异步操作的最大优点是可以在一个操作没有完成之前同时进行其他的操作。进行其他的操作。.NET框架提供了一种称为框架提供了一种称为AsyncCallback(异步回调)的委托,该委托允许启动异(异步回调)的委托,该委托允许启动异步的功能,并在条件具备时调用提供的回调方法(是一种步的功能,并在条件具备时调用提供的回调方法(是一种在操作或活动完成时由委托自动调用的方法),然后在这在操作或活动完成时由委托自动调用的方法),然后在

18、这个方法中完成并结束未完成的工作。个方法中完成并结束未完成的工作。13.2.3 UDP应用编程应用编程lUDP是一个简单的、面向数据报的无连接协议,提供了快速是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。所谓但不一定可靠的传输服务。所谓“无连接无连接”是在正式通信前是在正式通信前不必与对方先建立连接,不管对方状态如何就直接发送过去不必与对方先建立连接,不管对方状态如何就直接发送过去。lUdpClient类简化了类简化了UDP套接字编程套接字编程,提供了发送和接收无提供了发送和接收无连接的连接的UDP数据报的方便的方法。其建立默认远程主机的方数据报的方便的方法。其建立默

19、认远程主机的方式有两种:一是使用远程主机名和端口号作为参数创建式有两种:一是使用远程主机名和端口号作为参数创建UdpClient类的实例;类的实例;二二是先创建不带参数的是先创建不带参数的UdpClient类的类的实例,然后调用实例,然后调用Connect方法指定默认远程主机。方法指定默认远程主机。l调用调用UdpClient.Send方法方法即可即可将数据发送到远程主机。将数据发送到远程主机。UdpClient.Receive方法能够在指定的本地方法能够在指定的本地IP地址和端口上地址和端口上接收数据。接收数据。lUDP协议的重要用途是可以通过广播和组播实现一对多的通协议的重要用途是可以通过

20、广播和组播实现一对多的通信模式信模式。操作演示操作演示【例【例13-5】编写】编写一个一个Windows应应用程序,利用组用程序,利用组播技术向子网发播技术向子网发送组播信息,同送组播信息,同时接收组播的信时接收组播的信息。息。l源代码见教材源代码见教材13.3 电子邮件的发送和接收电子邮件的发送和接收l13.3.1 发送邮件发送邮件l13.3.2 接收邮件接收邮件电子邮件概述电子邮件概述电子邮件是通过电子邮件是通过SMTP服务器进行发送的,默认端口为服务器进行发送的,默认端口为25。接收邮件时,首先通过。接收邮件时,首先通过POP3协议与协议与SMTP邮件服务器连邮件服务器连接接,默认端口为

21、默认端口为110。通过。通过POP3协议,客户机登录到服务协议,客户机登录到服务器后,可以对指定的邮件进行删除或是下载到本地。器后,可以对指定的邮件进行删除或是下载到本地。电子邮件由三部分组成,信封、首部和正文。电子邮件由三部分组成,信封、首部和正文。(1) 信封:包括发信人的邮件地址和接收人的邮件地址,信封:包括发信人的邮件地址和接收人的邮件地址,(2) 首部:包括发送者、接收者、邮件的主题、发邮件的首部:包括发送者、接收者、邮件的主题、发邮件的时间、邮件的回复地址、邮件包含文本、时间、邮件的回复地址、邮件包含文本、HTML超文本和超文本和附件的哪些类型、邮件优先级等信息附件的哪些类型、邮件

22、优先级等信息(3) 正文正文:是邮件的内容。首部以一个空行结束,再下面是邮件的内容。首部以一个空行结束,再下面就是正文部分。就是正文部分。13.3.1 发送邮件发送邮件发送邮件,需要使用下面几个类:发送邮件,需要使用下面几个类:(1) NetworkCredential类类:用于提供身份验证机制的凭据用于提供身份验证机制的凭据NetworkCredential nc = new NetworkCredential(发件人邮发件人邮件地址件地址, 密码密码);(2) MailAddress类类:用于提供发件人和收件人的邮件地址用于提供发件人和收件人的邮件地址(3) MailMessage类类:用于提供邮件的信息,包括主题、内容用于提供邮件的信息,包括主题、内容、附件、信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论