- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于移动互联网linux系统远程控制台实现
一种基于移动互联网的linux系统远程控制台的实现
摘 要:通过移动运营商接入互联网的嵌入式设备,往往不具备固定的公网IP地址,从而也就无法通过telnet等技术手段实现对嵌入式设备的简便操控。为了对这些嵌入式设备实现类似telnet的简便操控,本文提出了一种基于移动互联网linux系统远程控制台的技术方案。本方案的基本思想是,将本地PC作为服务器,监听远程linux终端的socket连接请求;远程linux终端作为客户端,通过移动互联网与本地PC建立socket连接,并将标准输入输出句柄重定向到这个socket连接;建立连接后,通过本地服务器的程序处理,实现对远程终端的指令下发和远程终端执行结果的展示。
关键词:移动互联网;远程控制台;socket;描述符重定向
1 前言
在所有的类UNIX操作系统应用中,控制台(console)技术都是其最重要的技术之一,它为人机交互提供了最基本的渠道,通过这个渠道,用户可以方便地运行系统中集成的各种系统程序和应用程序,并实时监控程序的运行状态和输出调试信息。当然,作为类UNIX的Linux操作系统也不例外。
在基于嵌入式Linux操作系统的终端设备中,现有的控制台展示方法主要有两种:
⑴通过终端设备的一个RS-232串口与PC机的串口对接,借助PC机的上位机串口监视软件(如windows下的超级终端、ubuntu下的minicom等)实现与终端设备的交互;
⑵如果终端设备具备以太网接口,则PC机通过telnet等远程登录的方法实现与终端设备的交互。
但上述方法,在基于移动互联网的嵌入式linux终端设备中使用时,分别具有以下弊端:
⑴作为具备移动互联功能的嵌入式终端在应用中往往不在室内场合,甚至要随着被嵌入主体的移动而移动,这使得在某些情况下需要与终端实现交互时(比如运行一些特定的调试软件等),如果采用上述方法⑴,工作人员需要带着笔记本电脑和串口线到设备现场进行对接,相当不方便,也影响工作效率;甚至在某些特殊环境中,工作人员根本无法到达设备使用现场而无法与设备进行交互;
⑵对于方法2,则要求终端设备具备固定IP地址,然后把终端设备当作服务器通过telnet远程登录。但这种对终端需具备固定IP地址的要求不现实:首先,如使用GPRS等移动互联网的终端,由于移动运营商出于成本和IP资源的限制,分配给终端的IP一般都不是固定的公网IP地址,而是经过NAT技术为终端提供移动运营商的内网IP地址;其次,假设电信运营商同意为终端分配固定IP,其使用费必定很高,最终导致终端产品的使用成本提高。
基于以上分析,本文提出了一种新的基于移动互联网linux设备的远程控制台的技术方案,以规避前述的弊端和难点。本方案的基本思想是,将本地PC作为服务器,监听远程linux终端的socket连接请求;远程linux终端作为客户端,通过移动互联网与本地PC建立socket连接,并将标准输入输出句柄重定向到这个socket连接;建立连接后,经过本地服务器的程序处理,实现对远程终端的指令下发和远程终端执行结果的展示。
2 重要概念
⑴套接字:在linux中的网络编程是通过套接字(即socket)接口来进行的,它是linux世界中网络通信的基本操作单元。套接字是一种特殊的I/O接口,它也是一种文件描述符。socket是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。由于socket具备文件描述符的属性,所以在应用中它也适用linux文件描述符重定向技术。
⑵linux重定向:linux中的重定向通常是指在shell环境下的文件重定向,但本文主要涉及的是文件描述符的重定向,该技术主要通过dup和dup2两个系统调用来实现(函数原型如下)。dup在调用时传给该函数一个既有的描述符,它就会返回一个新的描述符,这个新的描述符是传给它的描述符的拷贝,这个调用在本方案中主要用以对系统的标准文件描述符(标准输入输出、标准错误输出)进行备份。而dup2则是将一个新的文件描述符覆盖到指定的文件描述符上,它在本方案中的主要作用是将标准文件描述符用socket连接的文件描述符来替代。
#include
int dup( int filedes );
int dup2( int filedes, int filedes2 );
3 具体实现
为便于理解,这里先对包含远程控制台的整个系统环境及相关名词做一个简单阐述。基于移动互联网的linux系统远程控制台实现的方案中,整个系统在物理架构上主要包含服务器、基于移动互联网的linux终端设备和移动互联网络三部分,其中
文档评论(0)