基于TCPIP多线程通信及其在远程监控系统中的应用.docx

基于TCPIP多线程通信及其在远程监控系统中的应用.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于TCPIP多线程通信及其在远程监控系统中的应用

基于TCP/IP的多线程通信及其在远程监控系统中的应用 文章出处:上海交通大学自动化研究所(200030)王金廉 谢剑英 贾 发布时间: 2007/09/25 | 1280 次阅读 | 1次推荐 | HYPERLINK /data/html/2007-9-25/43522.html \l guest 0条留言 HYPERLINK /advcount.asp?advid=238 \t _blank 业界领先的TEMPO评估服务 HYPERLINK /jump/N4481.278656.DZSC.COM/B7541671;sz=404x152;ord=%5btimestamp%5d? 每天新产品 时刻新体验 HYPERLINK /news/html/2013-1-28/143571.html \t _blank IC分销商如何选择管理软件   摘 要: 提出了一种在Windows NT下基于TCP/IP协议的多线程通信的设计与实现方法,在此基础上给出了多线程通信在蓄 HYPERLINK /product/file505.html \t _blank 电池远程 HYPERLINK /product/file910.html \t _blank 监控系统中的应用实例。 关键词: 多线程 实时性 TCP/IP协议 远程监控系统 ??? ?? 传统的应用程序都是单线程的,即在程序运行期间,由单个线程独占CPU的控制权,负责执行所有任务。在这种情况下,程序在执行一些比较费时的任务时,就无法及时响应用户的操作,影响了应用程序的实时性能。在监控系统,特别是远程监控系统中,应用程序往往不但要及时把监控对象的必威体育精装版信息反馈给监视客户(通过图形显示),还要处理本地机与远程机之间的通信以及对控制对象的实时控制等任务,这时 ,仅仅由单个线程来完成所有任务,显然无法满足监控系统的实时性要求。在DOS系统下,这些工作可以由中断来完成。而在Windows NT下,中断机制对用户是不透明的。为此,可引进多线程机制,主线程专门负责消息的响应,使程序能够响应命令和其他事件。辅助线程可以用于完成其他比较费时的工作,如通信、图形显示和后台打印等,这样就不至于影响主线程的运行。 ?? 1 Windows NT 多线程概述 ????? Windows NT是一个真正的抢占式多任务操作系统。在 Windows NT中,启动一个应用程序就是启动该应用程序的一个实例,即进程。进程由一个或多个线程构成,拥有内存和资源,但自己不能执行自己,而是进程中的线程被调度执行。进程至少要有一个线程,当创建一个进程时,就创建了一个线程,即主线程。主线程可以创建其他辅助线程,由主线程创建的线程又可创建线程。每个线程都可指定优先级,操作系统根据线程的优先级调度线程的执行。 ????? Windows NT中使用多线程的方法有三种: ???????? · 使用C多线程库函数; ?????? ? · 使用CreateThread() 等Win32函数; ???????? · 使用MFC类。 ????? 本文采用第三种方法。在Visual C++5.0 中,MFC应用程序用CWinThread 对象表示线程。基本操作如下: ??????? · 创建新线程:调用MFC全局函数AfxBeginThread ()创建新线程。AfxBeginThread()启动新线程并返回控制,然后,新线程和调用AfxBeginThread()的线程同时运行。它的返回值为指向CWinThread对象的指针; ??????? · 暂停/恢复线程:调用CWinThread类成员函数SuspendThread()暂停线程的运行,调用ResumeThread()成员函数恢复线程的运行; ??????? · 终止线程:在线程内部可调用全局函数AfxBeginThread()终止线程的运行,否则,线程执行结束后,线程自动从线程函数返回并释放线程占有的资源。 ??? 2 基于TCP/IP的多线程编程 ??? ?? TCP/IP是lnternet上广泛使用的一种协议,可用于异种机之间的互联。TCP/IP协议本身是非常复杂的,然而在网络编程中,程序员不必考虑TCP/IP的实现细节,只需利用协议的网络编程接口SOCKET.htm target=_blank title=Socket货源和PDF资料Socket(亦称套接字)即可。在 Windows 中,网络编程接口是 Windows? SOCKET.htm target=_blank title=Socket货源和PDF资料Socket它包含标准的Berkley SOCKET.htm target=_blank title=Socket货源和PDF资料Sockets的功能调用的集合,以及为 Wi

文档评论(0)

qee026 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档