通信学论文-工作站与PC之间进程的实时通讯 .doc通信学论文-工作站与PC之间进程的实时通讯 .doc

收藏 分享

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

通信学论文工作站与PC之间进程的实时通讯摘要该文简要介绍了SUN工作站与PC之间进行通讯的常用方法,着重论述了一种基于SOCKET编程,实现进程间直接实时通讯的方法,并举例说明。随着计算机的日益普及和应用领域的不断扩展,人们对计算机性能的要求也越来越高,特别是在科学计算、图形图像处理、网络工程、计算机辅助设计和制造CAD/CAM以及软件工程等领域。这些领域的要求对于一般的微型计算机来说是难以胜任的,而工作站的出现又恰好满足了这些方面的需要。SUN工作站是工作站中的典型代表,由于它采用了RISC技术等一系列先进的技术和方法,使得其性能价格比远远超出传统的微、小型计算机系统,因而具有很高的市场占有率。另一方面,IBMPC及其兼容机在我国也相当普遍,它们在各行各业得到了广泛的应用,拥有众多的用户和软硬件产品。如何将SUN工作站与PC这两者之间有机地结合起来,使它们各尽其长,就成了一个非常现实的问题。比如在分布式应用系统中,由于PC拥有众多像开关量和模拟量这样的I/O接口板,因此可以用它作为工业控制现场中的下位机,完成现场数据的实时采集与相关的控制操作;而用SUN工作站作为上位机,进行总的数据处理和分析。在这样的分布式应用系统中,SUN工作站与PC之间的通讯便是一个十分关键的问题。SUN工作站与PC之间的通讯可分为两个方面一是硬件连接,二是软件编程。对于硬件连接,一般说来可有以下两种作法,第一种是利用SUN工作站本身的RS232/RS423串口与PC的RS232串口,进行串行异步通讯。这种方法最大的优点是成本低,缺点是数据传输速度慢,数据的查错和纠错工作需由用户自己完成,另外还需对硬件直接编程。第二种方法是利用SUN工作站本身配备的以太网接口,这时要求也为PC配上一块网络接口卡,两者通过同轴电缆相连,构成以太网,从而实现它们之间的通讯。这种方法的优点是数据传输速度快,非常适合对实时性要求较高的应用项目,再加上有系统软件与编程工具软件包的支持,因此编程工作相对来说也比较简单。该方法的缺点是成本比第一种方法稍高一些。本文将着重介绍一下在第二种硬件连接方式下,即在以太网络环境中,为了实现SUN工作站与PC之间的进程通讯,在软件上需要做的一些工作。我们知道,SUN工作站采用了一种称为NFSNETWORKFILESYSTEM的分布式文件系统,该系统最大的优点是独立于机型、操作系统以及网络体系结构,实现了在异构环境下的文件共享。在NFS系统的支持下,文件存取对用户透明,即用户使用网络上文件的方法与使用本地文件的方法完全一致。为了实现PC与SUN工作站之间的文件共享,我们还必须在PC上安装一套称为PCNFS的软件,该软件由SUN公司提供。在安装完该软件之后,PC的用户就可以像使用本地上的软、硬盘那样使用SUN工作站上的文件了。到此为止,由于有了SUNNFS和PCNFS这两个系统软件的相互配合,已经可以完成SUN工作站与PC进程之间的通讯,其通讯方式是通过文件共享。但这种方法在实际应用中往往显得速度不够理想,而且由于需要依靠文件作媒介,因此在时间上和操作上造成的额外开销较大。于是,我们有必要探索一种SUN工作站与PC之间的进程不通过文件共享,而是直接进行实时通讯的方法。作者通过一段时间的摸索与实践,找到了一种可行的方案,现提出来供大家参考。这种实现进程间直接通讯方法的实质是在互连网域INTERNETDOMAIN支持的TCP/IP协议下,进行基于SOCKET套接字系统调用的程序设计。SOCKET是网络在传输层上提供给应用程序的接口,其目的主要是用来实现网络上进程之间的通讯。下面我们就通过一个具体的实例来详细说明这一方法。由于SOCKET程序设计通常都使用CLIENT/SERVER客户/服务器的模型,因此我们在具体实现上也遵循这一原则,把SUN工作站作为SERVER,PC作为CLIENT,两者在程序设计上分工不同。在本例中,我们要完成的任务是在工作站上的进程与在PC上的进程之间进行双向的数据传输,程序中分别各以一个字符串来代表实际要传送的信息。由于SOCKET程序设计是一个较为复杂的问题,因此本文不作详细论述,有关这方面的内容请读者参考相应书籍例如SUN公司的NETWORKPROGRAMMING等。我们在这里只把程序中需要注意的几个问题向大家作一简要说明。1由于SUN工作站上的进程属于SERVER方,因此它必须首先运行,等待来自PCCLIENT方进程的连接请求;2工作站上的进程运行之后,首先会在屏幕上显示一个端口PORT号。端口号是TCP/IP协议标识进程地址的一个组成部分,因此工作站上进程的端口号连同工作站的机器名称HOSTNAME必须要送到PC上要与之进行通讯的那个进程,只有这样,PC上的进程才知道自己将要与哪一个进程发生联系。在本文给出的实例中采用了通过命令行参数传递信息的方法,当然也可以使用其它方法;3在上述实例程序中,进程之间数据的传输使用了READ和WRITE函数,但这两个函数在用于SOCKET时与用于文件时的实际操作并不完全一样。由于网络本身传输特性的限制,它们很可能在一次调用中不能读出或写入函数参数中要求的那么多数据量。因此为了完成类似于文件操作READ和WRITE函数同样的功能,我们专门编写了两个新的函数READPKT和WRITEPKT,分几次读入或写出规定的字节数;4工作站上执行的程序只要在工作站上编译和连接后即可投入运行,而在PC上运行的程序必须要有SUN公司提供的PCNFSPROGRAMERSTOOLKIT软件包的支持,该软件包提供了与SOCKET调用有关的所有函数。本文PC上的程序是用BORLANDC30编译程序编译的,此外,该软件包也支持MICROSOFTC语言和MICROSOFTWINDOWS下应用程序的编程。在生成可执行代码之后,即EXE文件,就不再依赖该软件包了,但仍要在PCNFS系统支持下运行。以上就是SUN工作站与PC进程之间进行实时通讯的一种方法。当然,这里所说的“实时”也只是相对而言的,因为SUNOS操作系统属于UNIX操作系统这一大类,而UNIX操作系统本身是一个分时的操作系统,不可能有绝对的实时。但本文讨论的这种方法在实际项目中经过检验,已经可以满足实时性的要求,为SUN工作站与PC之间进行高速的数据传输开辟了一条新路。最后需要说明的是,本文介绍的进程之间实时通讯的方法不仅适用于SUN工作站与PC之间,而且也适用于连接到该以太网络上的所有机器,其中包括SUN工作站与SUN工作站之间进程的通讯,PC与PC之间进程的通讯以及它们之间的任意组合。SUN工作站即SERVER方程序程序文件名SUNC执行方法SUNINCLUDESYS/TYPESHINCLUDESYS/SOCKETHINCLUDENETINET/INHBRINCLUDENETDBHINCLUDESTDIOHDEFINEDATA1234567890MAIN{INTSOCK,LENGTH;STRUCTSOCKADDRINSERVER;INTMSGSOCK;CHARBUF;INTREADPKT,WRITEPKT;SOCKSOCKETAFINET,SOCKSTREAM,0;IFSOCK0{PERROROPENINGSTREAMSOCKET;EXIT1;}SERVERSINFAMILYAFINET;SERVERSINADDRSADDRINADDRANY;SERVERSINPORT0;IFBINDSOCK,STRUCTSOCKADDRSERVER,SIZEOFSERVER0{PERRORBINDINGSTREAMSOCKET;EXIT1;}LENGTHSIZEOFSERVER;IFGETSOCKNAMESOCK,STRUCTSOCKADDRSERVER,LENGTH0{PERRORGETTINGSOCKETNAME;EXIT1;}PRINTFSOCKETPORTD,NTOHSSERVERSINPORT;LISTENSOCK,5;MSGSOCKACCEPTSOCK,STRUCTSOCKADDR0,INT0;IFMSGSOCK1{PERRORACCEPT;EXIT1;}ELSEDO{BZEROBUF,SIZEOFBUF;IFREADPKTMSGSOCK,BUF,10240{PERRORREADINGSTREAMMESSAGE;BREAK;}PRINFTS,BUF;STRCPYBUF,DATA;IFWRITEPKTMSGSOCK,BUF,10240{PERRORWRITINGSTREAMMESSAGE;BREAK;}}WHILE1;CLOSEMSGSOCK;CLOSESOCK;RETURN0;}INTREADPKTSOCK,BUF,SIZEINTSOCK;CHARBUF;INTSIZE;{INTREST,READNUM,COUNT;COUNT0;RESTSIZECOUNT;WHILEREST{READNUMREADSOCK,BUF,REST;IFREADNUM0RETURNREADNUM;RESTREADNUM;BUFREADNUM;}RETURNSIZEREST;}INTWRITEPKTSOCK,BUF,SIZEINTSOCK;CHARBUF;INTSIZE;{INTREST,WRITENUM,COUNT;COUNT0;RESTSIZECOUNT;WHILEREST{WRITENUMWRITESOCK,BUF,REST;IFWRITENUM0RETURNWRITENUM;RESTWRITENUM;BUFWRITENUM;}RETURNSIZEREST;}PC即CLIENT方程序程序文件名PCC执行方法PCSUN工作站名称SUN进程端口号INCLUDESYS/TKTYPESHINCLUDESYS/SOCKETHINCLUDENETINET/INHINCLUDENETDBHINCLUDESTDIOHINCLUDESTRINGHDEFINEDATAABCDEFGHIJKLMNOPQRSTUVWXYZMAINARGC,ARGVINTARGC;CHARARGV;{INTSOCK;STRUCTSOCKADDRINSERVER;STRUCTHOSTENTHP,GETHOSTBYNAME;CHARBUF;INTREADPKT,WRITEPKT;SOCKSOCKETPFINET,SOCKSTREAM,0;IFSOCK0{PERROROPENINGSTREAMSOCKET;EXIT1;}SERVERSINFAMILYAFINET;HPGETHOSTBYNAMEARGV;IFHP0{FPRINTFSTDERR,SUNKNOWNHOST,ARGV;EXIT2;}MEMCPYCHARSERVERSINADDR,CHARHPHADDR,HPHLENGTH;
编号:201312172100302395    类型:共享资源    大小:13.37KB    格式:DOC    上传时间:2013-12-17
  
2
关 键 词:
生活休闲 网络生活 精品文档 通信学论
  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:通信学论文-工作站与PC之间进程的实时通讯 .doc
链接地址:http://www.renrendoc.com/p-242395.html

当前资源信息

4.0
 
(2人评价)
浏览:6次
zhaozilong上传于2013-12-17

官方联系方式

客服手机:17625900360   
2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   

精品推荐

相关阅读

人人文库
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

网站客服QQ:2846424093    人人文库上传用户QQ群:460291265   

[email protected] 2016-2018  renrendoc.com 网站版权所有   南天在线技术支持

经营许可证编号:苏ICP备12009002号-5