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

下载本文档

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

文档简介

2024/1/61C#程序设计经典教程第十三章网络应用编程技术总体要求了解C#网络编程的一般方法。掌握System.Net和命名空间中常用类的使用方法。了解利用HTTP、TCP和UDP协议进行网络通信编程的一般方法。熟练通过这些协议编写简单的客户端和效劳端应用程序。理解Socket编程的通信方式,熟练应用Socket完成同步和异步方式下的网络通信编程。掌握利用SMTP与POP3协议完成电子邮件发送和接收的一般方法,并能编写简单的的应用程序学习重点掌握System.Net和命名空间中常用类的使用方法。利用HTTP、TCP和UDP协议进行网络通信编程熟练应用Socket完成同步和异步方式下的网络通信编程熟练应用SMTP与POP3协议完成电子邮件的发送和接收编程学习难点System.Net和命名空间中常用类的使用方法理解多线程编程,熟练使用多线程进行网络编程异步模式下的网络应用程序编写2024/1/64第十三章网络应用编程技术主要内容13.1网络编程根底13.2Socket编程13.3电子邮件的发送和接收2024/1/6513.1网络编程根底13.1.1计算机网络的概述13.1.2计算机网络的通信协议13.1.3System.Net概述返回13.1.1计算机网络的概述1.什么是计算机网络计算机网络是指由地理上分散的、具有独立功能的多个计算机系统,以通信设备和线路互相连接,并配以相应的网络软件,以实现通信和资源共享的系统。2.计算机网络的分类局域网、城域网、广域网和互联网。13.1.2计算机网络的通信协议1.TCP/IP2.IP地址32位的二进制数,为了便于记忆,被分为4组,每组8位,由小数点分开,每组写成十进制形式,其值位于0~255之间。例如:3.URL格式:

[protocal:]//domain/[path]例如:13.1.3System.Net概述1.IPAddress类与Dns类前者具有IP地址的转换、处理等功能。例如:IPAddressip=IPAddress.Parse("");后者可以把主机名解析为IP地址,或者把IP地址解析为主机名。例如:IPAddress[]ip=Dns.GetHostAddresses("cctv");stringhostname=Dns.GetHostName();2.IPHostEntry类IPHostEntry类的实例对象中包含了Internet主机的相关信息。常用属性:AddressList和HostName例如:IPAddress[]ip;Ip=Dns.GetHostEntry("news.sohu").AddressList;ip=Dns.GetHostEntry(Dns.GetHostName()).AddressList3.IPEndPoint类要与远程主机进行通信,仅有IP地址是不够的。在Internet中,TCP/IP使用一个网络地址和一个效劳端口号来唯一标识设备和效劳。网络地址标识网络上的设备;端口号标识该设备上的特定效劳。网络地址和效劳端口的组合称为端点。在C#中,使用IPEndPoint类表示这个端点,该类包含了应用程序连接到主机上的效劳所需的IP地址和端口信息。IPEndPoint类常用的构造函数为:publicIPEndPoint(IPAddress,int);操作演示:【实例13-1】使用上述四个类完成如图13-3和13-4所示的应用程序功能,单击“显示本机IP信息〞按钮可以显示主机名及相关的IP地址;单击“显示效劳器信息〞按钮可以显示在文本框中输入的效劳器的IP地址信息。源代码见教材4.WebClient类它提供向URI标识的资源发送数据以及从这些资源接收数据的公共方法。主要属性是BaseAddress,用于定义WebClient发出的请求的基地址。常用方法如右表所示操作演示【实例13-2】使用WebClient类logo_png.png文件下载到本地磁盘,logo_png.png文件的URI为“〞。源代码见教材5.WebRequest和WebResponse类

WebRequest和WebResponse类是.NETFramework的请求/响应模型的抽象类。操作演示【实例13-3】使用使用FtpWebRequest和FtpWebResponse实现一个简单的Ftp客户端,完成连接、下载文件和更换目录的功能。源代码见教材13.2Socket编程13.2.1Socket编程概述13.2.2TCP应用编程13.2.3UDP应用编程返回13.2.1Socket编程概述Socket通常也称作“套接字〞,是支持TCP/IP协议的网络通信的根本操作单元。Socket是不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界面。在Internet上的主机一般运行了多个效劳软件,同时提供几种效劳。每种效劳都翻开一个Socket,并绑定到一个端口上,不同的端口对应于不同的效劳。1.Socket工作原理通信时套接字之间需要建立连接,过程如下:S1:效劳器监听:效劳器端套接字等待客户端套接字连接请求。S2:客户端请求:客户端套接字提出连接请求。为此,它必须首先描述连接目标,即指出效劳器端套接字的地址和端口号,然后再向效劳器端套接字提出连接请求。S3:连接确认:当效劳器端套接字监听到连接请求时,它建立一个新的线程,把效劳器端套接字的信息发给客户端,一旦客户端确认了此信息,连接即可建立。而效劳器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。2.Socket编程的通信方式(1)同步套接字(2)异步套接字3.Socket类Socket类包含在命名空间中,一个Socket实例包含了一个本地或者一个远程端点的套接字信息。Socket类的构造函数为:publicSocket(AddressFamilyaddressFamily,SocketTypesocketType,ProtocolTypeprotocolType);4.面向连接的套接字5.无连接的套接字13.2.2TCP应用编程1.TcpListener类用于监听和接收传入的连接请求。该类的构造函数有:(1)TcpListener(IPEndPointiep)(2)TcpListener(IPAddresslocalAddr,intport)TcpListener的同步方法:AcceptTcpClientAcceptSocketStartStop2.TcpClient类利用TcpClient类提供的方法,可以通过网络进行连接、发送和接收网络数据流。该类的构造函数有四种重载形式:(1)TcpClient()(2)TcpClient(AddressFamilyfamily)(3)TcpClient(IPEndPointiep)(4)TcpClient(stringhostname,intport)表13-5和表13-6列出了TcpClient类的常用属性和方法〔见教材〕3.同步TCP应用编程操作演示:【实例13-4】使用使用TcpListener和TcpClient实现效劳端和客户端通信的小程序。源代码见教材4.异步TCP应用编程对于执行完成时间可能较长的任务,如传送大文件等,使用同步操作可能就不太适宜了,这种情况下,最好的方法是使用异步操作。所谓异步操作方式,就是我们希望让某个工作开始以后,能在这个工作尚未完成的时候继续处理其他工作。异步操作的最大优点是可以在一个操作没有完成之前同时进行其他的操作。.NET框架提供了一种称为AsyncCallback〔异步回调〕的委托,该委托允许启动异步的功能,并在条件具备时调用提供的回调方法〔是一种在操作或活动完成时由委托自动调用的方法〕,然后在这个方法中完成并结束未完成的工作。13.2.3UDP应用编程UDP是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输效劳。所谓“无连接〞是在正式通信前不必与对方先建立连接,不管对方状态如何就直接发送过去。UdpClient类简化了UDP套接字编程,提供了发送和接收无连接的UDP数据报的方便的方法。其建立默认远程主机的方式有两种:一是使用远程主机名和端口号作为参数创立UdpClient类的实例;二是先创立不带参数的UdpClient类的实例,然后调用Connect方法指定默认远程主机。调用UdpClient.Send方法即可将数据发送到远程主机。UdpClient.Receive方法能够在指定的本地IP地址和端口上接收数据。UDP协议的重要用途是可以通过播送和组播实现一对多的通信模式。操作演示【例13-5】编写一个Windows应用程序,利用组播技术向子网发送组播信息,同时接收组播的信息。源代码见教材13.3电子邮件的发送和接收13.3.1发送邮件13.3.2接收邮件返回电子邮件概述电子邮件是通过SMTP效劳器进行发送的,默认端口为25。接收邮件时,首先通过POP3协议与SMTP邮件效劳器连接,默认端口为110。通过POP3协议,客户机登录到效劳器后,可以对指定的邮件进行删除或是下载到本地。电子邮件由三局部组成,信封、首部和正文。(1)信封:包括发信人的邮件地址和接收人的邮件地址,(2)首部:包括发送者、接收者、邮件的主题、发邮件的时间、邮件的回复地址、邮件包含文本、HTML超文本和附件的哪些类型、邮件优先级等信息(3)正文:是邮件的内容。首部以一个空行结束,再下面就是正文局部。13.3.1发送邮件发送邮件,需要使用下面几个类:(1)NetworkCredential类:用于提供身份验证机制的凭据NetworkCredentialnc=newNetworkCredential("发件人邮件地址","密码");(2)MailAddress类:用于提供发件人和收件人的邮件地址(3)MailMessage类:用于提供邮件的信息,包括主题、内容、附件、信息类型等。(4)Attachment类:类用于提供附件对象(5)SmtpClient类:用于发送邮件操作演示【例13-6】设计一个Windows应用程序,实现发送邮件的功能。源代码见教材13.3.2接收邮件客户端软件读取邮件之前,需要事先与效劳器建立TCP连接。连接成功后,POP3效劳器会向该客户端发送确认消息。然后客户端根据效劳器回送的信息决定下一步的操作。POP3效劳器回送的响应信息由一个状

温馨提示

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

评论

0/150

提交评论