




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用C#实现多线程Socket的通信我们把在Windows下同时执行的多个程序中的任何一个称 之为进程。 在操作系统的作用下,任何一个进程都认为自己是独立的,都认为自己拥有整台电脑全部的资源,比如内存、CPU等,它们并不知道其他进程正在与它分享这些资源,所以每个进程不 会去访问另一 个进程的资源。这样做的好处是一个进程无法破坏另一个进程,但缺点是 进程之间的信息很难共享。虽然每个进程 都认为自己拥有全部CPU资源, 但实际并不是这样,系统把CPU资源以时间片为单位,按特定的算法进行分配。在分配时间片的时候,系 统并不是按进程来分配而是按线程来进行分配,也就是 说只有线程才有权得 到CPU资源。我
2、们可以认为线程就是一段可以被执行的代码序列,在每一个进程内部,至少有一个线程,所有进程的运 行其实是进程内部的线程被执行而已,这就是进程能 获得时间片的原因。 我们创建的所有程序内部都有一个线程,在编写程序时并不需要做什么特殊 处理,但我们可以通过编写代码 让程序内部有多个线程,我们把包含两个 或两个以上的线程称之为多线程程序。1 Socket基本原理在C#中MS为我们提供了 System. Sockets命名空间,程序员可以通过socket来发送和接收网络上的数据。我们可以把它理解成是一个API,有了它就可以通过这个接口访问网络从而省去了很多复杂的操作。要通过互联网进行通信,至少需要一对套接
3、字,它是通信主 机之间的 端点,由它构成了单个主机内及整个网络间的编程界 面。我们把运行于客户 机端的称之Clientsocket ,运行于服 务器端的称之为ServerSocket。它的连接过程可以分为三个步 骤:服务器监听,客户端请 求,连接确认。2 Socket通信过程的实现 2. 1服务器端申请一个Socket ,定义到一个IP地址和一个端口上开启侦 听。每 成功接受一个客户端的链接便在服务端产生一个对应的Socket ,在接收客户端连接时创建责和对应的客户端通信。int recv ; /用于表示客户端发送的信息长度byte口 data二new byte1024 ; /用于缓存客户端所
4、发送的信 息IPEndPoint ipep = new IPEndPoint (IPAddress. Any ,9050) ; / 定义一网络端点 Socket newsock = new SocketAddressFamily. InterNetwork , SocketType. Dgram ,ProtocolType. Udp ) ; / 定义一个 Socketnewsock. Bind ( ipep ) ; /Socket与本地的一个终结点相 关 联IPEndPoint sender = newIPEndPoint ( IPAddress. Any ,0 );/定义要发送的计算机的地址
5、recv = newsock. ReceiveFrom (data, ref Remote ) ; /接受数据newsock. SendTo ( data , data. Length , SocketFlags. None , Remote) ; /发送信息2. 2客户端申请一个Socket ,连接服务器(必须指明IP地址和端口号),通过创建一个Socket对象来初始化一个服务器端的TCP连接:byte 口 data二new byte 1024; 定义一个数组用来做数 据的缓冲区string input , stringDataIPEndPoint ipep = new IPEndPoint
6、 IPAddress. Parse127. 0. 0. r ) , 9050 );/本机预使用的IP和端口server.SendTo (data , data. Length SocketFlags. None , ipep ) ; /将数据发送到指定的终结点data 二 new byte 1024int recv = server. ReceiveFrom data , ref Remote ); /接受来自服务器的数据2. 3服务器服务器接到连接请求后,产生一个新的Socket (端口大于1024)与客户端建立连接并进行通讯,原侦听Socket继续侦听。每个服务打开一个socket ,并绑定到一个端口上,不同的端口对应不同的服务(应用程序)。3结语许多Internet服务都可以见到Socket的踪影,如Telnet、Http、Email、Echo等,这些服务尽管通讯协议Protocol的定 义不同,但是其基础的传输都是采用的Socket 。针对Socket编程,框架的Socket类是Winsock32 API提供的套接字服务的托管代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗洁净空间专用高反射膜微生物附着控制与表面能重构的协同难题
- 动态定价模型与市场分割效应的关联性研究
- 2025年电力考试国家电网安规考试考试题库(附答案)
- 大尺度结构形成与暗能量研究-洞察及研究
- 企业风险评估工具与应急预案制定
- 合同审批流程标准化模板及工具
- 车间安全培训签到表模板课件
- 2025年软件开发合同组成内容
- 2025年设备租赁合同范本模板
- 汽车车身电控系统故障检修 课件 任务四:灯光控制系统认知与诊断
- 2025年教师节感恩教师主题班会课件
- 2025沈阳各区县(市)工会公开招聘工会社会工作者数量考试参考试题及答案解析
- 2025年中国DDX58抗体行业市场全景分析及前景机遇研判报告
- (2025秋新版)苏教版小学数学二年级上册全册教案
- 租房合同范本下载(可直接打印)
- 《燃煤火力发电企业设备检修导则》
- 会议电视系统工程设计规范附条文说明
- 常暗之厢(7规则-简体修正)
- 日语话剧展演策划
- 《煤矿地质学》试卷及参考答案(共6套)
- KYN系列高压开关设备装配工艺解析
评论
0/150
提交评论