推荐文档列表

工作站与PC之间进程的实时通讯

时间:2021-10-01 09:54:31 计算机论文 我要投稿

工作站与PC之间进程的实时通讯

摘 要 该文简要介绍了SUN工作站与PC之间进行通讯的常用方法,着重论述了一种基于Socket编程,实现进程间直接实时通讯的方法,并举例说明。

随着计算机的日益普及和应用领域的不断扩展,人们对计算机性能的要求也越来越高,特别是在科学计算、图形图像处理、网络工程、计算机辅助设计和制造(CAD/CAM)以及软件工程等领域。这些领域的要求对于一般的微型计算机来说是难以胜任的,而工作站的出现又恰好满足了这些方面的需要。SUN工作站是工作站中的典型代表,由于它采用了RISC技术等一系列先进的技术和方法,使得其性能价格比远远超出传统的微、小型计算机系统,因而具有很高的市场占有率。另一方面,IBM PC及其兼容机在我国也相当普遍,它们在各行各业得到了广泛的应用,拥有众多的用户和软硬件产品。

如何将SUN工作站与PC这两者之间有机地结合起来,使它们各尽其长,就成了一个非常现实的问题。比如在分布式应用系统中,由于PC拥有众多像开关量和模拟量这样的I/O接口板,因此可以用它作为工业控制现场中的下位机,完成现场数据的实时采集与相关的控制操作;而用SUN工作站作为上位机,进行总的数据处理和分析。在这样的分布式应用系统中,SUN工作站与PC之间的通讯便是一个十分关键的问题。

SUN工作站与PC之间的通讯可分为两个方面:一是硬件连接,二是软件编程。对于硬件连接,一般说来可有以下两种作法,第一种是利用SUN工作站本身的RS-232/RS-423串口与PC的RS-232串口,进行串行异步通讯。这种方法最大的优点是成本低,缺点是数据传输速度慢,数据的查错和纠错工作需由用户自己完成,另外还需对硬件直接编程。第二种方法是利用SUN工作站本身配备的以太网接口,这时要求也为PC配上一块网络接口卡,两者通过同轴电缆相连,构成以太网,从而实现它们之间的通讯。这种方法的优点是数据传输速度快,非常适合对实时性要求较高的应用项目,再加上有系统软件与编程工具软件包的支持,因此编程工作相对来说也比较简单。该方法的缺点是成本比第一种方法稍高一些。

本文将着重介绍一下在第二种硬件连接方式下,即在以太网络环境中,为了实现SUN工作站与PC之间的进程通讯,在软件上需要做的一些工作。

我们知道,SUN工作站采用了一种称为NFS(Network File System)的分布式文件系统,该系统最大的优点是独立于机型、操作系统以及网络体系结构,实现了在异构环境下的文件共享。在NFS系统的支持下,文件存取对用户透明,即用户使用网络上文件的方法与使用本地文件的方法完全一致。

为了实现PC与SUN工作站之间的文件共享,我们还必须在PC上安装一套称为PC-NFS的软件,该软件由SUN公司提供。在安装完该软件之后,PC的用户就可以像使用本地上的软、硬盘那样使用SUN工作站上的文件了。

到此为止,由于有了SUN NFS和PC-NFS这两个系统软件的相互配合,已经可以完成SUN工作站与PC进程之间的通讯,其通讯方式是通过文件共享。但这种方法在实际应用中往往显得速度不够理想,而且由于需要依靠文件作媒介,因此在时间上和操作上造成的额外开销较大。于是,我们有必要探索一种SUN工作站与PC之间的进程不通过文件共享,而是直接进行实时通讯的方法。作者通过一段时间的摸索与实践,找到了一种可行的方案,现提出来供大家参考。

这种实现进程间直接通讯方法的实质是在互连网域(Internet Domain)支持的TCP/IP协议下,进行基于Socket(套接字)系统调用的程序设计。Socket是网络在传输层上提供给应用程序的接口,其目的主要是用来实现网络上进程之间的通讯。下面我们就通过一个具体的实例来详细说明这一方法。

由于Socket程序设计通常都使用Client/Server(客户/服务器)的模型,因此我们在具体实现上也遵循这一原则,把SUN工作站作为Server, PC作为Client,两者在程序设计上分工不同。在本例中,我们要完成的任务是在工作站上的进程与在PC上的进程之间进行双向的数据传输,程序中分别各以一个字符串来代表实际要传送的信息。

由于Socket程序设

[1] [2] [3] [4]