欢迎来到天天文库
浏览记录
ID:59416157
大小:2.30 MB
页数:32页
时间:2020-09-19
《NET第8章 多线程与网络编程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
第8章多线程与网络编程本章的主要内容1、线程编程2、TCP简介与通信流程3、C#中与TCP编程相关的类4、UDP简介5、UdpClient类6、项目一基于TCP的LED灯控制服务器端软件设计7、项目二基于UDP通信的电源数据采集软件设计8、项目三基于TCPClient模式的温湿度数据采集软件设计 1线程编程1.1进程线程进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。进程可以理解为一个程序的基本边界。线程(Thread)是进程中的基本执行单元,在进程入口执行的第一个线程被视为这个进程的主线程。在.NET应用程序中,都是以Main()方法作为入口的,当调用此方法时系统就会自动创建一个主线程。 1.2多线程在单CPU系统的一个单位时间(timeslice)内,CPU只能运行单个线程,运行顺序取决于线程的优先级别。如果在单位时间内线程未能完成执行,系统就会把线程的状态信息保存到线程的本地存储器(TLS)中,以便下次执行时恢复执行。而多线程只是系统带来的一个假像,它在多个单位时间内进行多个线程的切换。因为切换频密而且单位时间非常短暂,所以多线程可被视作同时运行。但需要注意一点,因为CPU需要花费不少的时间在线程的切换上,所以过多地使用多线程反而会导致性能的下降。 1.3使用线程的好处(1)可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。(2)可以使用线程来简化编码。(3)可以使用线程来实现并发执行。1.4Thread类(1)System.Threading.Thread类System.Threading.Thread是用于控制线程的基础类,通过Thread可以控制当前应用程序域中线程的创建、挂起、停止、销毁。 (2)Thread类的主要方法Thread中包括了多个方法来控制线程的创建、挂起、停止、销毁,Thread类的主要方法有:①Thread()②Start()③Abort()④Sleep()(3)Thread类的主要属性Thread类有许多属性,但最常用的主要的属性①CurrentThread:获取当前正在运行的线程;②IsAlive:获取一个值,该值指示当前线程的执行状态;③Priority:获取或设置一个值,该值指示线程的调度优先级;④ThreadState:获取一个值,该值包含当前线程的状态;⑤Name:获取或设置线程的名称。 1.5ThreadStart委托原型为publicdelegatevoidThreadStart()。该委托用于没有参数的方法,在创建托管的线程时,在该线程上执行的方法将通过一个传递给Thread构造函数的ThreadStart委托来表示。在调用System.Threading.Thread.Start方法之前,该线程不会开始执行。执行将从ThreadStart委托表示的方法的第一行开始。ThreadStart委托可用于实例方法和静态方法。 1.6ParameterizedThreadStart委托publicdelegatevoidParameterizedThreadStart(objectobj)。该委托用于带参数的方法,在创建托管的线程时,在该线程上执行的方法将通过一个传递给Thread构造函数的ParameterizedThreadStart委托来表示。在调用System.Threading.Thread.Start方法之前,该线程不会开始执行。执行将从ParameterizedThreadStart委托表示的方法的第一行开始。ParameterizedThreadStart委托可用于实例方法和静态方法。 1.7C#中的多线程应用线程函数通过委托传递,可以不带参数,也可以带参数(只能有一个参数),可以用一个类或结构体封装参数。(1)不带参数的多线程序编程(2)带参数的多线程编程 2TCP简介与通信流程2.1TCP简介TCP是TCP/IP体系中最重要的传输层协议,它提供全双工和可靠传输的服务。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP核心协议中,TCP位于IP层之上的,在整体网络协议族中,它处于应用层诸多协议之下,很多常见的网络应用的协议(HTTP/FTP/SMTP/POP3等)都是支行在TCP基础之上的。 2.2套接字的TCP通信流程TCP程序是面向连接的,其运行机制是:服务器有一个Socket一直处于侦听状态,客户端Socket与嗠器通信这前必须首先发起连接请求,服务器上负责好胃口让的Socket接受请求并另外创建一个Socket与客户端进行通信,自己由继续侦听新的请求。 3C#中与TCP编程相关的类为了简化网络编程的复杂度,.NET对套接字进行发封装,使用System.Net.Sockets命名空间下的TcpListner类和TcpClient类,这两个类只支持标准协议的编程类。3.1PAddress类该提供了对IP地址的转换、处理等功能。其Parse方法可将IP地址字符串转换为IPAddress实例。如:IPAddressip=IPAddress.Parse(“192.168.1.1”); 3.2IPEndPoint类IPEndPoint类是一个将网络终结点表示为IP地址和端口号的类,位于System.Net命名空间里。IPEndPoint(IPAddress, Int32)该构造方法用于新实例初始化IPEndPoint类具有指定的地址和端口号。 3.3TcpListener类TcpListener类提供一些简单方法,用于在阻止同步模式下侦听和接受传入连接请求。该类的主要方法有:(1)TcpListener(IPEndPointiep);(2)TcpListener(IPAddresslocalAddr,intport);(3)Start();(4)Stop();(5)AcceptSocket();(6)AcceptTcpClient(); 3.4TcpClient类TcpClient类包含在System.Net.Socket命名空间中,该类主要用于客户端编程,而有服务器端程序是通过TcpListener的对象的AccetTcpClient方法得到TcpClient对象,故在服务器程序中不需要使用TcpClient类的构造函数创建TcpClient对象。TcpClient类的主要方法有:(1)TcpClient(IPEndPointiep);(2)TcpClient(stringhostname,intport);(3)Connect();(4)BeginConnect();(5)Close(); 3.6基于TCP的服务器端软件设计 3.7基于TCP的客户端软件设计 4UDP简介4.1UDP简介UDP是与TCP地位相当的另一种传输协议,是目前流行的很多主流网络应用底层的传输基础,其中QQ聊天软件就是基于UDP传输协议的。UDP是一种简单的、面向数据报的无连接协议,提供的是不一定可靠的传输服务。所谓“无连接”是指在正式通信前不必与对方先建立连接,不管对方的状态如何,都直接发送过去,这与发邮件、手机发短信非常相似。 4.2UDP的优缺点UDP相比与TCP而言,主要有以下优势:(1)UDP速度比TCP要快(2)UDP可以一对多传输数据UDP相比与TCP而言,主要有以下缺点:(1)UDP可靠性不如TC(2)UDP不能保证有序传输 5UdpClient类及应用5.1UdpClient类UdpClient类提供用户数据报协议(UDP)网络服务。位于System.Net.Sockets命名空间中。UdpClient类的主要方法(1)UdpClient(IPEndPoint)(2)UdpClient(String, Int32)(3)Connect(IPAddress, Int32)(4)Connect(IPEndPoint)(5)Connect(String, Int32)(6)Send(Byte[], Int32)(7)Send(Byte[], Int32, IPEndPoint)(8)Send(Byte[], Int32, String, Int32)(9)Receive(IPEndPoint)(10)Close() 5.2基于UdpClient类的软件设计 6项目一基于TCP的LED灯控制服务器端软件设计6.1数据通信协议LED灯控制服务器端软件发送数据到实验平台实验平台,分别控制每个LED灯的亮灭。将LED按下列顺序排列,对应位置1,点亮对应的LED灯;对应位置0,熄灭对应的LED灯。LEDRLEDGLEDBLED4LED3LED2LED1发送数据时排列的0101等数据看成是一个二进制数,组合成10进的数,再发送到实验平台实验平台。此表示LEDR、LEDB、LED3、LED2三个LED灯亮,其他的都是灭的。将这些数据换成16进制数就是0x86。 6.2界面设计6.3功能实现代码 6.4功能测试 7项目二基于UDP通信的电源数据采集软件设计7.1数据通信协议:在实验平台配置好后,将不断上传格式为“x.xxVxxxmA”格式的数据。7.2界面设计7.3功能实现代码 7.4功能测试 8项目三基于TCPClient模式的温湿度数据采集软件设计8.1数据通信协议将固件下到实验平台,并配置为客户端后,当有客户端以TCPClient模式连接到实验平台后,就不断上传格式为“Hxx.xxCxx.xx”格式的数据。 8.2界面设计8.3功能实现代码 8.4功能测试 结束!!!
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处