局域网通信工具开发中的核心技术解析

局域网通信工具开发中的核心技术解析

ID:10163460

大小:33.00 KB

页数:10页

时间:2018-06-12

局域网通信工具开发中的核心技术解析_第1页
局域网通信工具开发中的核心技术解析_第2页
局域网通信工具开发中的核心技术解析_第3页
局域网通信工具开发中的核心技术解析_第4页
局域网通信工具开发中的核心技术解析_第5页
资源描述:

《局域网通信工具开发中的核心技术解析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、局域网通信工具开发中的核心技术解析【摘要】局域网通信工具是一个局域网内部常用的通信工具,如典型的飞秋,本文从实践开发的角度阐述了在MFC开发环境中用c++语言开发一个局域网通信工具涉及到的核心技术:系统通信结构、网络通信技术与多线程及其同步技术,结合代码详述了核心技术的实现方法。【关键词】局域网通信;套接字;多线程;同步0概述局域网通信工具是一个局域网内部常用的通信工具,最典型的就是一般公司常用的飞秋。局域网通信工具一般要求具有的主要功能有一对一聊天、群聊、一对一传文件。如何设计整个系统的功能与结构,

2、怎么实现这些通信等等是在开发过程中涉及到的主要问题,以达到功能需求并提高整体性能。1统框架设计10局域网通信工具主要功能包括三个:单聊、群聊和传文件。通信模式分为两种:C/S模式和B/S模式,本文采用C/S模式,即客户端/服务器模式,在一个局域网中设一台服务器和若干台客户端机器。而客户端与服务器中间的通信有两种方式:一、所有客户端之间的通信信息都经过服务器进行转发。此结构的优点是可以在服务器中控制整个通信过程和记录通信信息,缺点是:服务器负担较重,对服务器性能要求较后者高。二、服务器只起到管理客户端的

3、作用,三种功能的实现是在客户端之间传送通信信息,不通过服务器进行转发。此结构的优点是:服务器负担较前者轻,对服务器性能要求不高,缺点是:通信信息不经过服务器进行转发,服务器不能控制整个通信过程,也不能记录通信信息。综合考虑以上两个结构的优缺点,结合局域网通信的特点,聊天记录通常需要查阅,为了更好地保存聊天记录、监控聊天内容,单聊和群聊信息需要通过服务器进行中转;而文件传输实时性要求较高,为了提高文件传输速度,传文件功能不通过服务器进行中转,而是直接在客户端之间完成,服务器为并发服务器[1],结构图如图

4、1。图1本文采用的通信结构2关键技术研究2.1关键技术概述整个系统的开发过程涉及到的核心技术有MFC界面技术[2]、多线程及其同步技术、网络通信技术及数据库连接技术。限于篇幅,本文重点结合实践介绍核心技术中的关键技术:网络通信与多线程及其同步技术。2.2多线程及其同步技术[3]2.2.1多线程概念、思想及用法10多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,即同一时间内完成多个任务,进而提升整

5、体处理性能。线程创建函数CreateThread的用法如下,本文用法见代码部分。核心接口函数:CreateThread的函数功能是创建线程,其函数原型为:HANDLEWINAPICreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,SIZE_TdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,LPVOIDlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId

6、);函数说明:第一个参数lpThreadAttributes表示线程内核对象的安全属性,一般传入NULL表示使用默认设置。第二个参数dwStackSize表示线程栈空间大小。传入0表示使用默认大小(1MB)。第三个参数lpStartAddress表示新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。第四个参数lpParameter是传给线程函数的参数。10第五个参数dwCreationFlags指定额外的标志来控制线程的创建,为0表示线程创建之后立即就可以进行调度,如果为CREATE_SUS

7、PENDED则表示线程创建后暂停运行,这样它就无法调度,直到调用ResumeThread()。第六个参数lpThreadId将返回线程的ID号,传入NULL表示不需要返回该线程ID号。函数返回值:成功返回新线程的句柄,失败返回NULL。2.2.2线程同步技术同一个进程中的多线程技术通常要结合同步技术实现,因为一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。同步就是协同步调,按预定的先后次序进行运行。线程同步方式主要有四种:临界区

8、、互斥量、事件、信号量[4]四种方式。本文中主要结合事件对象方式阐述线程与线程同步的应用。事件对象使用的核心接口函数:CreateEvent的函数功能是创建事件对象,其函数原型为:HANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes,BOOLbManualReset,BOOLInitialState,LPTSTRlpName);10第一个参数lpEventAttributes一般忽略不管。第二个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。