资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2019/5/24,第十三章 网络应用编程技术,1. 总体要求 熟悉System.Net及其子命名空间中常用类。 熟悉Socket、TcpListener、TcpClient和UdpClient类,掌握它们的编程与应用方法。 熟悉System.Net.Mail命名空间中的常用类,学会电子邮件发送和接收编程方法。 熟悉WebRequest和WebReponse类,学会FTP客户端的编程。 2. 学习重点 掌握System.Net及其子命名空间中常用类的使用方法。 掌握有关Socket、TcpListener、TcpClient和UdpClient的编程方法。 掌握电子邮件的发送和接收编程方法以及FTP客户端的编程方法。,第13章 网络应用编程技术,主要内容,电子邮件的发送和接收,13.3,13.2,网络编程基础,Socket编程,13.4,FTP与文件传输编程,13.1 网络编程基础,13.1.1 计算机网络的概述 13.1.2 计算机网络的通信协议 13.1.3 System.Net概述,返回,13.1.1 计算机网络的概述,计算机网络是指由地理上分散的、具有独立功能的多个计算机系统,以通信设备和线路互相连接,并配以相应的网络软件,以实现通信和资源共享的系统。 计算机网络的组成包括:计算机、网络操作系统、传输介质以及相应的应用软件四部分。 按距离来分类,计算机网络通常分为:局域网、城域网、广域网和互联网。,13.1.2 计算机网络的通信协议,1TCP/IP 2IP地址 例如192.168.0.1 3URI 一般格式为: protocal:/domainport/path,13.1.3 System.Net概述,1IPAddress类 提供对IP地址的转换、处理等功能。其Parse方法可将IP地址字符串转换为IPAddress实例。 2. Dns类 它把主机域名解析为IP地址, 或者把IP地址解析为主机名。 其常用方法有:GetHostAddresses() 和GetHostName() 3IPHostEntry类 包含了Internet主机的相关信息。常用属性有:AddressList和HostName。 4IPEndPoint类 IP地址和端口号的组合称为端点,案例演示,【实例13-1】使用上述四个类完成如图13-3和13-4所示的应用程序功能,单击“显示本机IP信息”按钮可以显示主机名及相关的IP地址;单击“显示服务器信息”按钮可以显示在文本框中输入的服务器的IP地址信息。,操作演示 详细代码:见教材,5WebClient类 WebClient 类提供一系列的成员方法,可以发送数据给指定URI的WEB服务器,或者从指定URI的WEB服务器获取数据信息。 WebClient类的主要属性是BaseAddress,该属性定义了客户端发出的请求的基地址。 WebClient类的方法可用于上传和下载文件,其主要的方法见表13-2。,案例演示,【实例13-2】使用WebClient类logo_png.png文件下载到本地磁盘,logo_png.png 文件的URI为“http:/img3.cache.netease.com/www/logo/logo_png.png”,效果如图13-3所示。,操作演示 详细代码:见教材,13.2 Socket编程,13.2.1 Socket编程概述 13.2.2 TCP应用编程 13.2.3 UDP应用编程,返回,13.2.1 Socket编程概述,1Socket工作原理 为了能区分不同的网络应用服务,TCP/IP协议引入了端口号,把IP地址和端口号组合成通信的端点(又称套接字)。这样,一对端点就可以表示相互通信的应用程序之间的网络连接。 套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。 2面向连接的套接字 使用TCP协议来建立两个IP地址端点之间的会话。 3无连接的套接字 UDP协议使用无连接的套接字进行通信。,4Socket类,Socket类包含在System.Net.Sockets中,它包含了一个端点的套接字信息。 其构造函数为: public Socket(AddressFamily a, SocketType s, ProtocolType p); 其中,参数a的值=AddressFamily.InterNetwork,表示使用IPv4的地址方案; S的值=SocketType.Stream时,表示连接是基于流套接字的,=SocketType.Dgram时,表示连接是基于数据报套接字的; P的值=ProtocolType.Tcp时,表示使用TCP协议,=ProtocolType.Udp时,表明使用UDP协议。,案例演示,【实例13-3】设计一个简单的Windows程序,根据指定的URI,用套接字发送HTTP请求,并将返回的信息显示在RichTextBox之中,效果如图13-6所示。,操作演示 详细代码: 见教材,13.2.2 TCP应用编程,1TcpListener类 用于监听和接收传入的连接请求 TcpListener的同步工作方式: AcceptSocket方法:用于在同步方式下返回一个套接字对象。 AcceptTcpClient方法:用于在同步方式下返回一个封装了套接字TcpClient对象。 Start方法:用于启动监听。 Stop方法:用于停止监听请求。 2. TcpClient类 表13-4和表13-5列出了TcpClient类的常用属性和方法。,3同步TCP应用编程,【实例13-4】使用TcpListener和TcpClient设计一个简易的聊天系统,实现服务端和客户端即时通信,效果如图13-7和图13-8所示。,操作演示 详细代码:见教材,4异步TCP应用编程,所谓异步操作方式,就是我们希望让某个工作开始以后,能在这个工作尚未完成的时候继续处理其他工作。 异步操作的最大优点是可以在一个操作没有完成之前同时进行其他的操作。.NET框架提供了一种称为AsyncCallback(异步回调)的委托,该委托允许启动异步的功能,并在条件具备时调用回调方法,然后在这个方法中完成并结束未完成的工作。 使用异步TCP应用编程时,除了套接字有对应的异步操作方式外,TcpListener和TcpClient类也提供了异步操作的方法。异步操作方式下,每个Begin方法都有一个匹配的End方法。在程序中利用Begin方法开始执行异步操作,然后由委托在条件具备时调用End方法完成并结束异步操作。,13.2.3 UDP应用编程,在System.Net.Sockets中,UdpClient类提供了发送和接收无连接的UDP数据报的方便的方法。其建立默认远程主机的方式有两种:一是使用远程主机名和端口号作为参数创建UdpClient类的实例;另一种是先创建不带参数的UdpClient类的实例,然后调用Connect方法指定默认远程主机。 UdpClient的重要成员: Send():直接将数据发送到远程主机 Receive():接收指定的IP地址和端口上的数据。 JoinMulticastGroup():将UdpClient对象和TTL一起加入组播组; DropMulticastGroup():可退出组播组。,案例演示,【例13-5】编写一个Windows应用程序,利用组播技术向子网发送组播信息,同时接收组播的信息,效果如图13-11和图13-12所示,操作演示 详细代码:见教材,13.3 电子邮件的发送和接收,13.3.1 发送邮件 13.3.2 接收邮件,返回,13.3.1 发送邮件,System.Net.Mail命名空间中提供了专门对邮件进行处理的类. NetworkCredential类:用于提供客户端身份验证机制的凭据 MailAddress类:用于提供发件人和收件人的邮件地址 MailMessage类:用于提供邮件的信息,包括主题、内容、附件、信息类型等 Attachment类:用于提供附件 SmtpClient类:用于发送邮件,案例演示,【例13-6】设计一个Windows应用程序,实现发送邮件的功能,效果如图13-13所示,操作演示 详细代码:见教材,13.3.2 接收邮件,POP3服务器通过侦听TCP的110端口提供POP3服务。 客户端软件读取邮件之前,需要事先与服务器建立TCP连接。连接成功后,POP3服务器会向该客户端发送确认消息。客户端根据服务器回送的信息决定下一步的操作。 POP3服务器回送的响应信息由一个状态码和一个可能跟有附加信息的命令组成,所有响应以回车换行结束。其中,状态码有两种:“确定”为“+OK”和“失败”为“-ERR”。对于客户端发送的每一条命令,服务器都会回送状态码。 因此在客户端程序中,可以通过服务器回送的状态码对应的字符,即判断第一个字符是“+”号还是“-”号来确定服务器是否正确响应客户端发送的命令。,案例演示,【例13-7】设计一个Windows应用程序,利用POP3协议和TCP编写一个简单的邮件接收客户端程序,效果如图13-14所示。,操作演示 详细代码:见教材,13.4 FTP与文件传输编程,13.4.1 WebRequest和WebResponse类 13.4.2 FTP客户端的实现,返回,13.4.1 WebRequest和WebResponse类,二者都是抽象类,总一起使用,首先必须配置一个WebRequest对象来定义要发送给服务器的请求,然后调用GetResponse方法,将请求发送给服务器,并在WebResponse中从服务器返回响应。 二者不能直接使用,.NET为HTTP、FTP和文件协议提供了具体的实现方法,如图13-15所示,13.4.2 FTP客户端的实现,【实例13-8】使用FtpWebRequest和FtpWebResponse实现一个简单的Ftp客户端,完成连接、下载文件、更换目录和上传文件的功能,效果如图13-16所示。,操作演示 详细代码:见教材,作业,1. 书面作业(见本章教材) 2. 上机实验(见本章教材),2019/5/24,Class Over,Thank you!,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号