qthshilei
驱动牛犊
驱动牛犊
  • 注册日期2005-03-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1256回复:0

串口终端网络解决方案

楼主#
更多 发布于:2005-03-20 22:54
我开发了一个unix下的telnet服务器程序,大家看一下吧!!

http://218.10.26.30/shilei/steptty.tar.Z

另:配合开发一个单口终端服务器,用c51做的.

我的主页为qthshilei.heima.com
刚申请的,有时上不去,过一段时间我自己再做一个.


串口终端网络解决方案


    
   由于串口终端在接入时具有接入设备昂贵、接入方式变更费用大、接入线缆需使用专用串口线路、故障排除困难等问题。在网络日益普及的今天越来越不适应。所以我们推出了串口终端网络解决方案,通过本方案,可以使用更底的成本、更灵活的方式,实现比以往更多的功能。

功能1:支持几乎所有的unix操作系统。
   我们拥有本方案的所有核心技术的知识产权、拥有所有产品的源代码,本程序在设计时,没有修改系统核心,没有利用个别操作系统特有的技术,可以移植到各类通用unix操作系统中。

功能2:既支持送login方式,也支持哑终端方式。
   现有多数公司的固定终端号系统都是从linux下的telnetd经修改而来的,当客户程序联接上来后,由exec运行login来实现为客户端送login,不能实现哑终端,不能完全仿真原串口终端。在一些对安全要求较高的系统根本无法运行(如工商银行 cite环境)。
   我们的程序自己对终端数据进行处理,使用软件模拟串口终端,使网络终端具有和串口终端一样的功能。操作、配置完全一样,不改变用户操作习惯。

功能3:一个单口终端服务可同时支持4屏。
   旧串口终端,一个终端只能有一个画面,但实际中常常需要一个操作员操作多个画面的情况,比如综合柜员(未上综全业务系统)既要同时办理储蓄、会计、出纳、中间业务。很多单位为实现多屏煞费苦心,有的使用sco unix操作系统下的mscreen,虽然可以实现多个画面,但需要由用户先进入系统后,运行mscreen,才能出现多屏,且各屏的终端号都是随机产生的,一但出现应用软件死锁,较难处理。有的使用双主口终端,一个终端必需布两根专用串行线,才能实两个画面。
   而使用我们开发的单口终端服务器,只要联入网络,就可以同时联接4台服务器,或同时联接1台服务器的4个终端。(如有需要,在升级程序的情况下,可支持8个终端)。如果终端支持多屏功能,各屏切换时还能保存原有画面。
   使用这一功能,还能实现前置机热备份功能(现在各单位的各类服务都已实现双机热备,但终端接入前置机却没有能够实现热备)。将应用一配置为生产前置机,将应用二配置为备用前置机,当生产前置机出现故障或需要停机维护时,可以由操作员通过热键切换到备用前置机上,确保停机不停业。

功能4:steptty固定终端号系统支持多个端口。
   steptty可以根据服务器侧的端口号来区分来自同IP的多个应用。使终端可以随心所欲联接应用画面。

功能5:可以自己清理死锁的终端画面。
   业务终端常有应用程序死机的情况,需打电话到机房由机房人员将终端杀死、再激活。而使用本终端服务器后,在应用程序死机后,可以按一特定键,由steptty 固定终端号系统调用专用清理程序进行自动清理。可以减少因软故障引起的停机时间。

功能6:可以用pc机仿真终端。
   银行有很多业务必须要pc机和终端一起才能办理。而使用我们开发的仿真终端软件可以仿真一台真实的终端,一些终端的外设,如密码键盘、磁条机可以接到我们生产的转换器上(为外设供电)。串口打印可以接到另一个串口上。终端仿真实达终端vt100模式。
  
各单位可以根据实际情况,选择相应的方案

方案一、steptty + 单口终端服务器

   用于客户端使用串口终端办理业务的环境。

   固定终端号程序安装在服务器上,能够接收单口终端服务器或仿真终端程序发来的数据包,并根据其客户端的地址为其分配终端号,将虚终端仿真成实终端。

   单口终端服务器拥有两个网络接口、一个串行接口。一个网络接口接到工行网络上,另一个网络接口可以再串接另一台单口终端服务器。串行接口接到终端上。单口终端服务器能够将终端键盘发来的数据通过网络送给服务器侧的固定终端号程序,并将固定终端号程序发来的传送给终端显示。

这样,对于使用终端的用户,只需要将单口终端服务器接到终端通讯口上,并将单口终端服务器接到网络上,就可以象以前一样办理业务了。无论终端搬到哪里,只要有网络,就可以使用。同时,由于单口终端服务器通过网络接口与其它设备相联,不会出现联烧情况。由于每一台终端都使用独立的接入设备,即使出现问题,只需要关闭终端重启即可,不会影响到其它用户。而且,我们开发的单口终端服务器可以为终端提供4个独立的画面,联接4个不同的前置机,当一个前置机出现故障时,可以直接切换到另一台前置机上,而不会影响到业务。
单口终端服务器与其它终端接入设备相比的优点:
1. 与多用户卡相比。
多用户卡经常烧口子,口子坏了,就得由技术人员对其进行更换口子,有时还会烧坏整个卡,使所有用户不得不停业维修。且很难实现前置机集中,一个网点需配置一台前置机,管理较难。
而单口终端服务器使用终端电源,其地与终端的地为同一地,所以即使终端损坏,一般也不会烧毁单口终端服务器。
2. 与路由器及终端服务器相比
这种方式可以实现前置机集中管理,但价格极贵。路由器是路由设备,用于联接终端会降低其转发性能。而且从路由器到终端还需要专门串口线路联接。
而使用单口终端服务器一端提供一条25孔电缆直接接到终端上,另一段接入到网络就可以了。
3. 与网络终端相比
很多网点都配置了网络终端,但由于网络终端一但有故障,需更换时,必须由专业技术人员来重新配置(因联接配置的密码必须由专业技术人员掌握,否则会有安全隐患)。更换费力。
而使用单口终端服务器只需要更换终端,不用重新配置。
    
方案二、steptty + 仿真终端程序

   用于客户端有pc机的环境。

   仿真终端程序安装到运行windows操作系统的pc机上。通过软件将pc机模拟成一台终端,使pc机也可以办理只有终端才能办理的业务。
   对于机关各科室那些既使用pc机,又使用终端的用户。就不用在桌子上另摆个终端了,只要在pc机上安装仿真终端程序,无需布线,无需另购设备就可以办理以前必需在终端上办理的业务了。


附:steptty 说明书
忘了说了,本程序是通用的,可以使用仿真终端,win终端,或其它厂家的终端服务器(只持telnet的)

如需在源代码请与我联系 qthshilei@vip.sina.com ,不免费的啊!!我可是做了好几天呢!!!


Steptty v2.0

使







简介
本系统采用C语言在 Unix 下(现支持 sco unix , Aix) 利用 socket 实现固定终端号。
一般的固定终端号程序通过修改telnetd来通过inetd调用来实现固定终端号。但这种方式由于是在TCP连接后启动服务器,然后通过exec来执行login,只能实现送login方式,且当终端关闭后重新打开时不能恢复原画面,不能完全模拟串口终端。
本系统采用自己开发的守护进程来接收远程终端的请求,并在系统启动时同时打开所有配置了的终端,并实时保存终端写出的数据,确保送画面方式正常运行。同时对于终端送出的数据进行全部保存,打印大量数据时不会丢失数据。

目录

简介 2
安装说明 3
使用说明 4
Port.ini 4
管理端口 5
操作系统的配置: 6
sco unix 6
AIX 6
核心参数调整 7
终端名修改 8



安装说明
本软件安装非常简单,只要将steptty放到 /etc/steptty目录中,然后在/etc/rc.d/8中任一文件中加入启动本软件的命令就可以了,/etc/steptty/steptty &。
注意:本程序运行时要在/tmp/step_tty目录下生成部分临时文件,保证本程序能够在/tmp目录下能够建立 step_tty目录,并有读写权限。
    本程序要有权访问已配置的/dev/下的文件。且保证这些文件没有被其它应用程序使用。

使用说明
本系统的配置文件只有两个 port.ini 和 tty.ini.
port.ini 是配置本程序占用的端口号文件。Port.ini文件中第一行为管理端口。从第二行起分别为别名为1、2、3…19 的端口号。如以下的port.ini中 管理端口为 3000 别名1的端口号为 3001. 别名为2 的端口号为3002.
Port.ini
3000
3001
3002

注意:端口数最多为 20个。

tty.ini 是配置终端号的配置文件。第一列为终端号的简写,第二列为 IP地址, 第三列为端口号别名。如按以下文件,如果在终端上配置本机地址为 192.168.0.2 且对端端口号为3001的终端将取得p10这个端口号。
tty.ini
p10 192.168.0.2 1
p11 192.168.0.2 2
p12 192.168.0.3 1
p13 192.168.0.4 2

注意:终端号一定不要加tty。
     终端数最多为4096个。如需更多,需修改源代码。

管理端口
管理端口用来kill一个终端进程,或修改配置后立即使之有效。
   在steptty启动后,修改port.ini是不起做用的。因为port.ini是在系统启动时读入,以后将不重新读入,如果需要修改port.ini请重启steptty.
   在steptty启动后,修改tty.ini后需要登陆其管理端口,并使用refresh命令来启用、删除、修改刚刚修改的配置。
   在steptty启动后,可以登陆其管理端口,使用stop 结束steptty进程,一般情况下不建议这样做,如果在系统运行中这样做会使所有通过steptty联入的终端关闭。
   在steptty启动后,可以登陆其管理端口,通过kill关闭一个终端的管理进程,一般情况下不用这样做,因为关闭网络终端后重新打开就会重置这个终端的进程。

操作系统的配置:
sco unix
增加续终端数:SCO UNIX系统默认虚终端数为64,当需要增加时,运行netconfig,修改SCO TCP/IP下的 Pseudo ttys: 为你需要的终端数,如果不修改核心参数,Pseudo最大为256.
修改/etc/inittab表,以决定是否为送login方式
p11:234:respawn:/etc/getty /dev/ttyp11 m
p12:234:off:/etc/getty /dev/ttyp12 m
然后运行 init q 让系统重读 inittab文件

注意:修改完后,如果重新连接核心,该配置将会丢失,所以修改完/etc/inittab后,要同时修改/etc/conf/cf.d/init.base.这样在重新连接核心就不会丢失配置了。
修改/etc/ttytype
vt100 ttyp1
vt100 ttyp2

AIX
  增加BSD-style虚终端数 :使用命令smit―Devices―Pty―Change/show characterise…―将BSD-style虚终端数修改为所需终终端数量。
修改/etc/inittab 表,以决定是否为送login方式
q1:234:respawn:/usr/sbin/getty /dev/ttyq1
q2:234:off:/usr/sbin/getty /dev/ttyq2

修改/etc/ttytype
vt100 ttyq1
vt100 ttyq2

核心参数调整
由于增加终端过多,系统必须调整以适应过多终端的需要。以下以sco unix 5.0.5为例简单说明:
3.tty 修改 nclist(字符表缓冲区数目) 到2048或以上。
7.user and group configuration 修改nofile(单进程打开的最大文件数),一般调整为终端数的3到4倍。Maxup(系统最大进程数),建议调整为1024以上。
12 Streams NSTREAM(流头结构数) 建议配置为6000. NSTRPAGES(页面数),建议配置为3000。STRSPLITFRAC这个值如果太小,系统中流buffer将很快变成碎块,建议此次参数值为80

终端名修改
如果应用程序要求不能使用ttypxx这类终端号,可以通过修改/dev/设备文件名来实现。
如假设我们已配置好一个终端为ttyp20,现在我们将ttyp20修改为ttyx21 可以这样:
mv /dev/ttyp20 /dev/ttyx21
mv /dev/ptyp20 /dev/ptyx21
修改 /etc/inittab 中 p20:234:respawn:/etc/getty /dev/ttyp20 m为p20:234:respawn:/etc/getty /dev/ttyx21 m
修改tty.ini中
p20 192.168.0.5 1 为 x21 192.168.0.5
运行init q
就可以看到
SCO OpenServer(TM) Release 5 (scosysv) (ttyx20)

login:
同样,可以修改为其它终端号。

游客

返回顶部