优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

067_基于Linux的远程控制技术(服务端)C语言

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

远程控制技术的作用
1. 远程办公
通过远程控制功能我们可以轻松的实现远程办公,这种远程的办公方式新颖,轻松,从某方面来说可以提高员工的工作效率和工作兴趣。
2.远程技术支持
远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这种交流即耗时又容易出错。但是有了远程控制技术,技术人员就可以远程控制用户电脑,就像直接操作本地电脑一样,只需要用户的简单帮助就可以得到该计算机存在的问题的第一手资料,很快就可以找到问题的所在,并加以解决。
3.远程交流
利用远程技术,商业公司可以实现和用户的远程交流,采用交互式的教学模式,通过实际操作来培训用户,使用户从技术支持专业人员那里学习示例知识变得非常容易。而教师和学生之间也以利用这种远程控制技术实现教学问题的交流,学生可以不用见到老师,就得到老师手把手的辅导和讲授。学生还可以直接在电脑中进行习题的演算和求解,在此过程中,教师能够轻松看到学生的解题思路和步骤,并加以实时的指导。
4.远程维护和管理
网络管理员或者普通用户可以通过远程控制技术为远端的电脑安装和配置软件、下载并安装软件修补程序、配置应用程序和进行系统软件设置。
1.3 远程控制技术的应用现状及发展趋势

内容来自think58

[来源:http://think58.com]


远程控制就目前状况来说,在微软Windows操作系统中的远程控制工具软件非常多,其中大家最熟悉的有塞门铁克公司的PC ANYWHERE,还有CA ControlIT等等。这些远程控制工具软件都可以通过网络来控制特定的计算机,共享那台计算机的数据资料,操作其外部设备。而在Linux操作系统中也是存在几款功能强大的远程控制工具软件,只是这些软件非常少,使用的用户也不是很多。
随着网络技术和通信技术的发展,远程控制技术也将得到迅速的发展和广泛的应用,那么Linux平台中的远程控制技术的发展前景更是备受关注的。
2 远程控制系统的背景与需求分析
2.1 Linux平台下远程控制系统的产生
远程控制系统在现代社会有着越来越广泛的应用。远程控制中的嵌入技术、远程控制的数据处理与传输、远程控制的管理和远程控制的终端都取得了广泛的发展。远程控制系统一般模型的构建及其实现的研究对今后开发远程控制系统有着良好的指导意义。在互联网领域Linux系统使用得相当广泛,现阶段基于windows的远程控制系统相当齐全,而基于Linux的远程控制系统相对很少,结合实际工作中对Linux的本地需求与运用,产生了通过网络的远程应用。
Linux操作系统的运用越来越广泛,是真正的多用户、多任务操作系统,他继承了UNIX系统的主要特征,具有强大的信息处理能力,特别在Internet和Internet的应用中占有很明显的优势。与其他操作系统相比,具有一系列显著的特点: 本文来自think58
[资料来源:www.THINK58.com]

1.与UNIX兼容
现在,Linux已经成为具有全部UNIX特征,所有UNIX的主要功能都有相应的Linux工具和实用程序。
2.自由软件和源码公开
任何人都可以自由使用Linux源程序,这样就激发了世界范围内热忠于计算机事业的人们的创造力。通过Internet,这一软件得到迅速传播和广泛使用。
3.性能高和安全性强
Linux上包含了大量网络管理、网络服务等方面的工具,用户可利用它来建立高效稳定的防火墙、路由器等。由于源码公开,所以可消除系统中是否有“后门”的疑惑。
Linux是公认的安全的操作系统,因为它的内核是可见的,它的源代码是公开的可以由任何对它进行操作的人进行修改。所以许多企业的网络服务器都首选LINUX操作系统。
远程控制系统的首要目的就是要远程接入一个安装有Linux操作系统的机器中,如何在远程计算机的安全机制允许下合法或者非法接入远程计算机是远程控制系统的基本问题。
2.2 Linux平台下远程控制系统的需求分析
经过分析,远程控制软件需要提供一个基于C/S(即客户端/服务器端)模式用户接口,它允许一个用户来管理本地电脑上的桌面项目或者说应用功能的实现,用户能够通过自己的电脑控制远端的计算机,并能够利用自己的鼠标和键盘直接对远端的桌面进行控制,实现远程桌面的控制、屏幕控制、对文件的查看和修改等功能。基于Linux下的远程控制的产生符合以下几点的需要:

本文来自think58 [资料来源:www.THINK58.com]


1、现阶段Linux广泛地应用于日常生活与工作,Linux下的应用软件需要更进一步的发展。
2、基于SSH协议的远程管理对一般用户来说易用性低,易用性需要提高。
3、基于Linux课题的创新。
通过分析GNU公共软件VNC的设计原理和开发过程,结合实际的需求开发了这个系统,并命名为tightVNC。
3 远程控制系统的总体设计
3.1 编程基础的介绍
Unix是计算机使用的主流操作系统之一,TCP/IP是广为应用的互联网协议,Unix为TCP/IP网络编程提供了一种网络进程通信机制:套接字接口(Sockets Interface)。以下将介绍Unix环境下套接字的基本概念及编程技术,并结合实例说明在Unix下如何用套接字实现客户机/服务器方式的进程通信。
1、套接字简介
套接字(Socket)是网络通信的基本操作单元,它提供了不同主机间进程双向通信的端点,这些进程在通信前各自建立一个Socket,并通过对Socket的读/写操作实现网络通信功能。
套接字分为以下3种类型。
1) 字节流套接字
这是最常用的套接字类型,TCP/IP协议簇中的TCP(Transport Control Protocol)协议使用此类接口,它提供面向连接的(建立虛电路)、无差错的、发送先后顺序一致的、包长度不限和非重复的网络信包传输。 think58

[来源:http://think58.com]


2) 数据报套接字
TCP/IP协议族中的UDP(User Datagram Protocol)协议使用此类接口,它是无连接的服务,以独立的信包进行网络传输,信包最大长度为32KB,传输不保证顺序性、可靠性和无重复性,它通常用于单个报文传输或可靠性不重要的场合。
3) 原始数据报套接字
提供对网络下层通讯协议(如IP协议)的直接访问,它一般不是提供给普通用户的,主要用于开发新的协议或用于提取协议较隐蔽的功能。
2、套接字编程方法
这里将分别介绍面向连接协议的字节流套接字与非连接协议的数据报套接字的编程方法,因原始数据报套接字在实际工作中较少,在此不作讨论。不论何种套接字编程均采用客户机/服务器的协作模式,即由客户进程向服务器进程发出请求,服务器进程执行被请求的任务并将结果返回给客户进程。字节流套接字的服务进程和客户进程在通信前必须建立连接。建立连接及通信的步骤见图1。
1) 服务进程首先调用Socket()创建一个字节流套接字,并调用bind()将服务器地址捆扎在该套接字上,接着调用listen()监听连接请求 ,随后调用accept()做好与客户进程建立连接的准备,无连接请求时,服务进程被阻塞;
2) 客户进程调用Socket()创建字节流套接字,然后调用connect()向服务进程发出连接请求; think58.com
[资料来源:THINK58.com]

3) 当连接请求到来后,服务进程被唤醒,生成一个新的字节流套接字,并用新套接字同客户进程的套接字建立连接,而服务进程最早生成的套接字则继续用于监听网络上的服务请求;
4) 服务进程和客户进程通过调用read()和write()交换数据;
5) 服务进程和客户进程通过调用close()撤消套接字并中断连接。 [来源:http://www.think58.com]

内容来自think58 [版权所有:http://think58.com]

think58好,好think58 [资料来源:http://think58.com]

[版权所有:http://think58.com]

[资料来源:http://think58.com]

think58 [来源:http://www.think58.com]

[资料来源:THINK58.com]

copyright think58

[资料来源:http://THINK58.com]

[来源:http://think58.com]

本文来自think58

[版权所有:http://think58.com]

[来源:http://www.think58.com]

think58好,好think58

[资料来源:http://www.THINK58.com]

[资料来源:http://think58.com]

内容来自think58 [资料来源:http://www.THINK58.com]

[资料来源:http://think58.com]

[资料来源:www.THINK58.com]

[版权所有:http://think58.com]

数据套接字的服务进程客户进程通信前不必建立连接, 通信的步骤见图2。
1) 服务进程首先调用Socket()创建一个数据套接字,并调用Bind()将服务器地址捆扎在该套接字上,然后调用Recvfrom()等待客户进程发来的请求;
2) 客户进程在调用Socket()创建一个数据报套接字后,调用Bind()将客户机地址捆扎在此套接字上,接着调用Sendto()向服务进程发送请求,然后调用Recvfrom()等待服务进程返回该请求的处理结果;
3) 服务进程在执行客户进程所请求的任务后,调用Sendto()将处理结果返回给客户进程;
4) 服务进程和客户进程通过调用Close()撤消套接字。
本文来自think58 [资料来源:http://THINK58.com]