下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上摘要:基于TCP/IP的网络通信技术实现了面向连接的用户与服务器间点对点异步通信,本文在该基础上应用了多线程以及共享数据结构技术,使网络服务器具有了多用户间数据转发的功能,进而解决了局域网多用户间的通信问题。关键词:TCP/IP;多线程;共享;通信;网络 引言由于因特网的迅速流行,越来越多的应用程序具备了在网上与其它程序通信的能力。从WIN95开始微软把网络功能融进了它的操作系统,使得应用程序网络通信能力更为普及。因此,微软的TCP/IP协议也就成为网络应用程序基于的首选协议。一般采用TCP/IP协议的应用程序只实现了单用户与服务器间点对点的连接,而本文在VC6.0的
2、环境下,运用了了多线程以及共享数据结构技术,不仅实现了多用户与服务器间的连接,而且解决了多用户间信息互发问题-依靠服务器的转发功能。通过本文的阐述,希望能对那些需要编写多用户网络通信程序的读者以启发。一、技术概述 1.1 基于TCP/IP的通信技术基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,程序一般分为服务器端和用户端两部分。下面简要地讲一下设计思路(VC6.0下):第一部分服务器端一、创建服务器套接字(create)。二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。三、接受来自用户端的连接请求(accept)。四、开始数据传输(send/re
3、ceive)。五、关闭套接字(closesocket)。第二部分用户端一、创建用户套接字(create)。二、与远程服务器进行连接(connect),如被接受则创建接收进程。三、开始数据传输(send/receive)。四、关闭套接字(closesocket)。通过以上设计思路,我们可以创建一个简单的面向连接的单用户程序。下面,将介绍多线程技术,以使程序支持多用户。1.2 多线程技术我们可以把线程看成是一个进程(执行程序)中的一个执行点,每个进程在任何给定时刻可能有若干个线程在运行。一个进程中的所有线程共享该进程中同样的地址空间,同样的数据和代码,以及同样的资源。进程中每个线程都有自己独立的栈
4、空间,和其它线程分离,并且不可互相访问。每个线程在本进程所占的CPU时间内,要么以时间片轮换方式,要么以优先级方式运行。如果以时间片轮换方式运行,则每个线程获得同样的时间量;如果以优先级方式运行,则优先级高的线程将得到较多的时间量,而优先级低的线程只能得到较少的时间量。方式的选择主要取决于系统时间调度器的机制以及程序的实时性要求。现在,运用多线程技术就可以实现对多用户的支持。即在服务器端,使接收来自用户端的连接请求(accept)这步无限循环,每接收一个用户请求,产生两个线程(send和receive线程),用来管理服务器与该用户的通信任务。下面,运用共享数据结构技术,就可以实现本问所要解决的
5、关键技术-服务器转发技术。1.3 共享数据结构技术同一进程中的多个线程共存于单一的线性地址空间,因此,在多线程间共享数据结构是非常容易且方便的。但必须注意的是,对数据结构的访问必须是多线程互斥的,否则数据任意更改将导致不可预料的结果。本文所阐述的服务器转发技术也就是通过共享数据结构实现线程间的互相通信。二、实现方案整体方案的构思图如下:通过上图,我们可以看到整个系统分为三个相关的程序,即注册/登陆服务器、通信服务器以及用户程序。其中,注册/登陆服务器负责用户的注册、登陆以及数据库管理;通信服务器负责完成数据转发以及共享数据结构的管理;用户端则完成注册、登陆和通信功能。为什么要把服务器分为两部分呢?主要是考虑到服务器的用户容量问题,以及对通信服务器的保护,只有在通过验证后,用户在能与通信服务器连接。由此可见,整个系统通信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮公司员工培训
- 食堂大灶点火规范培训
- 广东省佛山市禅城区2023-2024学年四年级上学期月考英语试卷(12月份)
- 广东省江门市蓬江区省实学校2023-2024学年高一上学期期中考试 化学试题(无答案)
- 信息技术(第2版)(拓展模块) 教案 项目3、4 DHCP服务器的配置与管理;4 物联网
- T-ZFDSA 10-2024 沙棘面制作标准
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)课件 易月娥 项目5、6 Web和FTP服务器的配置与管理、证书服务器的配置与管理
- 高中语文第1章写作的多样性与独特性第2节联想与想象课件新人教版选修文章写作与修改
- 骨盆临床解剖
- 环保行动未来在手-共筑绿色生活守护地球家园
- 2024年秋季新人教PEP版三年级上册英语全册教案
- GB/T 15688-2024动植物油脂不溶性杂质含量的测定
- 沪科版(2024)八年级全一册物理第一学期期中学业质量测试卷 2套(含答案)
- 2024云南黄金集团招聘高校毕业生72人(高频重点提升专题训练)共500题附带答案详解
- DZ∕T 0212.3-2020 矿产地质勘查规范 盐类 第3部分:古代固体盐类(正式版)
- 化工和危险化学品生产经营单位二十条重大隐患判定标准释义(中化协)
- 愚公移山英文 -中国故事英文版课件
- 医务人员职业暴露处理流程.doc
- 现代礼仪—湖南大学袁涤非大刘整理版
- 年处理100t中药车间设计
- 能源热电公司班组建设工作总结
评论
0/150
提交评论