版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级软件人才实作培训专家高级软件人才实作培训专家多多 线线 程程老赵老赵高级软件人才实作培训专家高级软件人才实作培训专家为什么要用多线程l让计算机同时做多件事情,节约时间。l多线程可以让一个程序“同时”处理多个事情。l后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况。l获得当前线程和当前进程Demo1:单线程带来的问题单线程带来的问题高级软件人才实作培训专家高级软件人才实作培训专家.net中如何实现多线程2(线程同步)l产生一个线程的4步骤:编写产生线程所要执行的方法引用System.Threading命名空间实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候
2、这个线程已经产生,但是还没有运行)调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由具体执行时间由CPU决定决定。Demo2:两个线程同时运行高级软件人才实作培训专家高级软件人才实作培训专家前台线程和后台线程l前台线程:只有所有的前台线程都关闭才能完成程序关闭。l后台线程:只要所有的前台线程结束,后台线程自动结束。高级软件人才实作培训专家高级软件人才实作培训专家Thread类的一些重要成员(*)lStart()启动线程(告诉CPU 我可以被执行了,具体什么时候执行,由CPU决定)Abort()终止线程 终止完成之后不能再Start()Thread.Sleep(
3、1) 静态方法,可以使当前线程停止一段时间运行lName线程名lThread.CurrentThread获得当前的线程引用高级软件人才实作培训专家高级软件人才实作培训专家补充和练习lDemo3:线程中如何访问控件lDemo4:执行带参数的方法高级软件人才实作培训专家高级软件人才实作培训专家SOCKET网络编程网络编程高级软件人才实作培训专家高级软件人才实作培训专家两个人在两个房子里打电话的图l人通过【电话】可以通信l程序通过【Socket】来通信。l*套接字 就是 程序间的 电话机。l我和杨浩然打电话 电话 规定好的语言l电脑和电脑进行联系 Socket HTTP协议 高级软件人才实作培训专家
4、高级软件人才实作培训专家Socket相关概念lsocket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个程序通信用的其实就是两个程序通信用的。)lsocket非常类似于电话插座。以一个电话网为例。电话的通话双方相当于相互通信的2个程序,电话号码就是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话
5、的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤消连接。高级软件人才实作培训专家高级软件人才实作培训专家Socket相关概念端口l在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应用程序)。l例如:http 使用80端口 ftp使用21端口 smtp 25端口l有两种类型:50000流式Socket(STREAM):是一种面向连接的Socket,针对于面向连接
6、的TCP服务应用,安全,但是效率低;数据报式Socket(DATAGRAM):是一种无连接的Socket,对应于无连接的UDP服务应用.不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高.高级软件人才实作培训专家高级软件人才实作培训专家Socket一般应用模式(服务器端和客户端)1.服务端welcoming socket 开始监听端口(负责监听客户端连接信息)2.客户端client socket连接服务端指定端口(负责接收和发送服务端消息)3.服务端welcoming socket 监听到客户端连接,创建connection socket。(负责和客户端通信)负责监听连接请求的套
7、接字客户端套接字负责和客户端通信的套接字高级软件人才实作培训专家高级软件人才实作培训专家Socket一般应用模式(服务器端和客户端)l服务器端的Socket(至少需要两个)一个负责接收客户端连接请求(但不负责与客户端通信)每成功接收到一个客户端的连接便在服务端产生一个对应的负责通信的Socket在接收到客户端连接时创建.为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信).l客户端的Socket客户端Socket必须指定要连接的服务端地址和端口。通过创建一个Socket对象来初始化一个到服务器端的TCP连接。 高级软件人才实作培训专家高级软件人才实作培训专家Soc
8、ket的通讯过程l服务器端:申请一个socket 绑定到一个IP地址和一个端口上开启侦听,等待接授连接l客户端:申请一个socket连接服务器(指明IP地址和端口号)l服务器端接到连接请求后,产生一个新的socket(端口大于1024)与客户端建立连接并进行通讯,原监听socket继续监听继续监听。高级软件人才实作培训专家高级软件人才实作培训专家l连接通过构造函数完成。 lpublic Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)AddressFamily 成员指定 S
9、ocket 用来解析地址的寻址方案。例如,InterNetwork 指示当 Socket 使用一个 IP 版本 4 地址连接。 SocketType 定义要打开的 Socket 的类型 Socket 类使用ProtocolType枚举向 Windows Sockets API 通知所请求的协议Socket的构造函数 如:mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);Demo1:监听高级软件人才实作培训专家高级软件人才实作培训专家注意:l至少要定义一个要连接的远程主机的
10、IP和端口号。l端口号必须在 1 和 65535之间,最好在1024以后。l要连接的远程主机必须正在监听指定端口,也就是说你无法随意连接远程主机。如:IPAddress addr = IPAddress.Parse();IPEndPoint endp = new IPEndPoint(addr, 10001);服务端先绑定服务端先绑定:serverWelcomeSocket.Bind(endp)客户端再连接客户端再连接:clientSocket.Connect(endp)高级软件人才实作培训专家高级软件人才实作培训专家注意:l一个Socket一次只能连接一台主机。lSocke
11、t关闭后无法再次使用。l每个Socket对象只能一台远程主机连接. 如果你想连接到多台远程主机, 你必须创建多个Socket对象。高级软件人才实作培训专家高级软件人才实作培训专家l-相关类-lIPAddress类:包含了一个IP地址lIPEndPoint类:包含了一对IP地址和端口号l-方法们-lSocket (): 创建一个SocketlBind(): 绑定一个本地的IP和端口号(IPEndPoint)lListen(): 让Socket侦听传入的连接尝试,并指定侦听队列容量lConnect(): 初始化与另一个Socket的连接lAccept(): 接收连接并返回一个新的socketlSe
12、nd(): 输出数据到SocketlReceive(): 从Socket中读取数据lClose(): 关闭Socket (销毁连接)Socket方法Demo2:发送文字信息高级软件人才实作培训专家高级软件人才实作培训专家Socket通信基本流程图高级软件人才实作培训专家高级软件人才实作培训专家基于TCP的Socket编程TCP service:可靠的字节流传输 processTCP withbuffers,variablessocket由软件工程师控制由操作系统控制processTCP withbuffers,variablessocketinternetclientserverSocket()Connect()Socket()Bind()Listen()accept( )Send( )Receive( )Close( )Close( )ReceiveSend( )TCP conn. requestTCP ACK高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国电建集团江西省水电工程局有限公司招聘备考题库及参考答案详解
- 2026年广东煤炭地质二0一勘探队招聘备考题库有答案详解
- 2026年太原太航德克森自控工程股份有限公司招聘备考题库及一套参考答案详解
- 2026年广州国投悦康美邸养老服务有限公司招聘备考题库及1套完整答案详解
- 2026年北京京糖酒类经营有限公司招聘备考题库及一套参考答案详解
- 2026年厦门科方圆工贸有限公司招聘备考题库及完整答案详解一套
- 2026年北京机械工业自动化研究所有限公司招聘备考题库及参考答案详解
- 2026年太仓市第一人民医院第一批事业编制公开招聘专业技术人员16人备考题库含答案详解
- 2026年平潭综合实验区公开招聘高端人才备考题库完整答案详解
- 2026年义乌市中心医院医共体上溪院区招聘备考题库及1套参考答案详解
- 12-重点几何模型-手拉手模型-专题训练
- RPA财务机器人开发与应用 课件 项目二 RPA财务机器人基础UiPath认知
- PICC置管新技术及维护新进展
- 七年级上册道德与法治第1-4单元共4个单元复习教学设计
- 个人分红收款收据
- 内科学(广东药科大学)智慧树知到期末考试答案章节答案2024年广东药科大学
- 人教版数学五年级上册《多边形的面积》单元作业设计()
- 肾素血管紧张素系统药理
- 海南省职校技能大赛(植物病虫害防治赛项)参考试题库(含答案)
- 银屑病慢病管理
- 克拉玛依市克拉玛依区2023-2024学年七年级上学期期末数学强化卷(含答案)
评论
0/150
提交评论