版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京传智播客教育聊天程序
(基于Socket,Thread)讲师:牛亮亮文件流FileStream文件流FileStream对象表示在磁盘或网络路径上指向文件的流使用
FileStream
类对文件系统上的文件进行读取、写入、打开和关闭操作FileStream
对输入输出进行缓冲,从而提高性能为什么不用File.ReadAllText()?好处之一就是:对于大文件来说,FileStream可以对文件采取分段读取,即每次只读取一部分到内存。字符串和字节数组转换字节数组转换成字符串:StringSystem.Text.Encoding.UTF8.GetString(byte[])字符串转换成字节数组:byte[]System.Text.Encoding.UTF8.GetBytes(String)多线程为什么要用多线程让计算机"同时"做多件事情,节约时间。多线程可以让一个程序“同时”处理多个事情。后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况。Demo1:单线程带来的问题.net中如何实现多线程2(线程同步)产生一个线程的4步骤:编写产生线程所要执行的方法引用System.Threading命名空间实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。Demo2:两个线程同时运行(画图).net中如何实现多线程线程肯定也是要执行一段代码的。所以要产生一个线程,必须先为该线程写一个方法,这个方法中的代码就是该线程运行所要执行的代码。(找个人来做一件事情)线程启动时,通过委托调用该方法。 (委托的好处)(线程启动时,调用传过来的委托,委托就会执行相应的方法,实现线程执行方法)程序1程序2线程1线程2线程3线程1线程2线程3多线程进程与线程一个进程至少有一个线程同一个进程中的多个线程之间可以"并发"执行前台线程和后台线程前台线程:只有所有的前台线程都关闭才能完成程序关闭。后台线程:只要所有的前台线程结束,后台线程自动结束。Thread类的一些重要成员(*)Start()启动线程Abort()终止线程abort后无法再次startThread.Sleep(1)静态方法,可以使当前线程停止一段时间运行Name线程名Thread.CurrentThread获得当前的线程引用补充和练习Demo:线程中如何访问控件Demo:执行带参数的方法SOCKET网络编程TCP/IP*应用层(Application):应用层是个很广泛的概念,有一些基本相同的系统级TCP/IP应用以及应用协议,也有许多的企业商业应用和互联网应用。传输层(Transport):传输层包括UDP和TCP,UDP几乎不对报文进行检查,而TCP提供传输保证。网络层(Network):网络层协议由一系列协议组成,包括ICMP、IGMP、RIP、OSPF、IP(v4,v6)等。链路层(Link):又称为物理数据网络接口层,负责报文传输。两个人在两个房子里打电话的图人通过【电话】可以通信程序通过【Socket】来通信。*套接字就是程序间的电话机。Socket相关概念socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个程序通信用的。)socket非常类似于电话插座。以一个电话网为例。电话的通话双方相当于相互通信的2个程序,电话号码就是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤消连接。Socket相关概念[端口]在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应用程序)。例如:http使用80端口ftp使用21端口smtp25端口有两种类型:流式Socket(STREAM):
是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低;数据报式Socket(DATAGRAM):
是一种无连接的Socket,对应于无连接的UDP服务应用.不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高.Socket一般应用模式(服务器端和客户端)1.服务端ingsocket开始监听端口(负责监听客户端连接信息)
2.客户端clientsocket连接服务端指定端口(负责接收和发送服务端消息)
3.服务端ingsocket监听到客户端连接,创建connectionsocket。(负责和客户端通信)1.2.3.负责监听‘连接请求’的套接字客户端套接字负责和客户端通信的套接字Socket一般应用模式(服务器端和客户端)服务器端的Socket(至少需要两个)一个负责接收客户端连接请求(但不负责与客户端通信)每成功接收到一个客户端的连接便在服务端产生一个对应的负责通信的Socket在接收到客户端连接时创建.为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信).客户端的Socket客户端Socket必须指定要连接的服务端地址和端口。通过创建一个Socket对象来初始化一个到服务器端的TCP连接。
Socket的通讯过程服务器端:申请一个socket绑定到一个IP地址和一个端口上开启侦听,等待接授连接客户端:申请一个socket连接服务器(指明IP地址和端口号)服务器端接到连接请求后与客户端建立连接并进行通讯,原监听socket继续监听。连接通过构造函数完成。
publicSocket(AddressFamilyaddressFamily,SocketTypesocketType,ProtocolTypeprotocolType)AddressFamily
成员指定
Socket
用来解析地址的寻址方案。例如,InterNetwork
指示当
Socket使用一个IP版本4地址连接。SocketType
定义要打开的
Socket
的类型Socket
类使用
ProtocolType
枚举向WindowsSocketsAPI
通知所请求的协议Socket的构造函数
如:mySocket=newSocket(AddressFamily.InterNetwork,
SocketType.Stream,ProtocolType.Tcp);Demo1:监听注意:至少要定义一个要连接的远程主机的IP和端口号。端口号必须在1和65535之间,最好在1024以后。要连接的远程主机必须正在监听指定端口,也就是说你无法随意连接远程主机。如:IPAddressaddr=IPAddress.Parse("");IPEndPointendp=newIPEndPoint(addr,10001); 服务端先绑定:eSocket.Bind(endp) 客户端再连接:clientSocket.Connect(endp)注意:一个Socket一次只能连接一台主机。Socket关闭后无法再次使用。每个Socket对象只能一台远程主机连接.如果你想连接到多台远程主机,你必须创建多个Socket对象。------------------相关类--------------------------IPAddress类:包含了一个IP地址IPEndPoint类:包含了一对IP地址和端口号--------------------方法们------------------------------Socket():创建一个SocketBind():绑定一个本地的IP和端口号(IPEndPoint)Listen():让Socket侦听传入的连接尝试,并指定侦听队列容量Connect():初始化与另一个Socket的连接Accept():接收连接并返回一个新的socketSend():输出数据到SocketReceive():从Socket中读取数据Close():关闭S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设申请报告范文(6篇)
- 社区的社会实践调查报告
- 政治必修四教案8篇
- 广东省广州市2024−2025学年高二上学期10月月考 数学试卷含答案
- 江西省宜春市(2024年-2025年小学五年级语文)统编版摸底考试(下学期)试卷及答案
- 二年级语文上册三单元教案
- 编制说明-《企业研发管理体系建设指南(征求意见稿)》
- 上海市市辖区(2024年-2025年小学五年级语文)人教版能力评测((上下)学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版竞赛题(上学期)试卷及答案
- 雨水回收系统技术规格书
- 2024虚拟电厂管理规范
- 《膝盖积水症状》课件
- 专题2.2 绝对值的综合(压轴题专项讲练)(北师大版)(原卷版)
- 河南省青桐鸣大联考2023-2024学年高一上学期12月月考试题化学
- 第20课珍爱国宝──古代陶瓷艺术
- 城市道路机动车安全驾驶指南
- 我有一盏小灯笼
- 标本溢洒应急预案演练图
- 湖南省建设工程质量检测收费项目和收费标准
- 9-1文化发展的必然选择 教学设计 高中政治统编版必修4(2023~2024学年)
- 预防一氧化碳中毒安全教育完整PPT
评论
0/150
提交评论