固定终端号程序免费下载

发表于:2007-05-26来源:作者:点击数: 标签:
我新做的,20用户版,现已在工商 银行 投产。 如需源码清与我联系。 可不送login,而直接送画面。 可以自己清理终端。 可在我的网站上下 http://qthshilei.heima.com sdccf 回复于:2005-03-11 22:37:01 你的网站上不去. qthshilei 回复于:2005-03-12 19:05

我新做的,20用户版,现已在工商银行投产。
如需源码清与我联系。
可不送login,而直接送画面。
可以自己清理终端。
可在我的网站上下
http://qthshilei.heima.com

 sdclearcase/" target="_blank" >ccf 回复于:2005-03-11 22:37:01
你的网站上不去.

 qthshilei 回复于:2005-03-12 19:05:36
http://218.10.26.30/shilei/steptty.tar.Z

 qthshilei 回复于:2005-03-12 19:09:02
我也发现了,有时不好用,这个网站是我刚找的,过几天我自己建一个。

 qthshilei 回复于:2005-03-12 19:15:13
串口终端网络解决方案

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

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

功能2:既支持送login方式,也支持哑终端方式。
    现有多数公司的固定终端号系统都是从linux下的te.netd经修改而来的,当客户程序联接上来后,由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机上安装仿真终端程序,无需布线,无需另购设备就可以办理以前必需在终端上办理的业务了。

 注册错误 回复于:2005-03-12 23:46:07
从你的标题是上,应该不仅仅是你的产品的驱动?

如果是通用的程序,可否说下怎样使用?在通常的局域网,在win端通过telnet
到unix

 CNL 回复于:2005-03-13 10:33:19
帮你设为精华,支持一下!
终端用户注意了,需要改为网络接入方式的来看看

 qianchengguo 回复于:2005-03-13 13:47:14
基本的意思懂了,能不能提供一个示意图来看看.

 60133056 回复于:2005-03-13 14:03:30
驻足  观望ING

 surfzsl 回复于:2005-03-13 14:04:46
能给我看看源代码吗
我正学习这方面编程呢
想拿来研究研究
方便的话发我邮箱,谢谢 ̄ ̄
surfzsl@126.com

 zhkun 回复于:2005-03-13 17:02:16
guan zhu  ing.....

 qthshilei 回复于:2005-03-14 10:54:36
忘了说了,本程序是通用的,可以使用仿真终端,win终端,或其它厂家的终端服务器(只持telnet的)

如需在源代码请与我联系 qthshilei(a)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:
同样,可以修改为其它终端号。

 qthshilei 回复于:2005-03-14 10:56:14
但如果您想研究,其实非常简单,你找几本书可以自己做一个.
说穿了,就是打开设备文件,然后与网络交换数据.

 swallowcn 回复于:2005-03-14 13:18:24
厉害呀!

 sdwsfw 回复于:2005-03-14 19:49:49
高手呀,以前只会用,没有做深入分析,长见识!

 zh950 回复于:2005-03-14 22:12:04
你是工行的?那个行的,这么牛,我也是工行的,你的这东西现在在哪儿用着呢?

 qthshilei 回复于:2005-03-15 09:13:01
工行

 jetrix 回复于:2005-03-15 12:28:15
俺也想学学,
jetrix@tom.com

3x!

 苦瓜 回复于:2005-03-21 10:52:10
我也想学习学习,给我一份源码吧.先谢谢了.
fileset@sina.com

 qthshilei 回复于:2005-03-21 15:58:22
原来我做这个程序是去年有个河北做终端的公司要买的,所以做了一个,结果那个公司不讲信誉,完程序时非常急,我加班加点,不到两周时间给他做出来了,结果他又不急了,到现在没成交呢!!!

然后我想,反正也做了,不如做个产品,就做了个硬单口终端服务器.想卖设备赚点钱花花.

如果哪个单位(非设备厂家) 买我的设备(单口终端服务器 300元一个).如果总金额大于5万,我就可以送给他源代码的.

如果销量好的话,过一段时间我会公布源代码的.

 qthshilei 回复于:2005-03-26 22:22:25
发表之后,发现很多人想要,所以又对程序做了部分修改,增加了点新功能。大家看看中用不。
最新程序还没上传,过几天我会传到主页上。

一般的终端在开机后,都是没有画面的,需要按几个键子等服务器侧应用程序刷新屏幕才能出来。对于应用程序不刷新屏幕的,就得将就用了。

我在steptty中增加了对vt100的仿真部分代码,让主机送来的数据写在内存中的虚拟终端显存中,当终端联接上来时,立即将保存的画面送出,并重置光标。这样,无论什么时候,只要打开终端,就能看到显示画面。

 leek 回复于:2005-03-26 22:53:42
需要网络终端?昌霖的厂家有一种针对网络终端的.

 sdccf 回复于:2005-03-27 11:28:34
一般终端厂家都有固定终端号的程序,楼主的功能不仅仅限于这个.

 纳兰婷 回复于:2005-03-27 20:37:56
不错~~很厉害啊

 dlc02 回复于:2005-03-30 15:31:39
用户数只有20个,有点少,如果能有100个左右,那就太好了。

 dlc02 回复于:2005-03-30 15:32:20
用户数只有20个,有点少,如果能有100个左右,那就太好了。

 Nestle 回复于:2005-03-30 17:07:36
dl_post@sina.com
有源程序就更好了

 qthshilei 回复于:2005-03-31 00:53:24
终于做完了。
大家帮忙测一下。发现我未知问题,请给我发邮件 qthshilei(a)my-step.org,我将在测试完成后,送其一套4096用户正式版软件。

地址:http://www.my-step.org/down/steptty.tar.Z

v3.0主要做了以下修改。
1.v2.0服务器使用文件缓冲,将第一时间将所有数据接收,然后后台发送。在v3.0中改为按流控方式发送。避免了steptty压力过大。
2.新增.即开即显功能是新开发出来的功能,能够实现无论什么时候打开终端都会出现画面。但由于vt100仿真控制码较多,全部支持占用服务器cpu时间过多,且各家终端厂家也都有自己的控制码,所以我们现在只支持一部分控制码。所以有时可能刚刚打开的终端显示的有问题?

 qthshilei 回复于:2005-03-31 00:54:59
这次测试版的也是100用户的。源代码暂时不公开,不要怪我。

 zhkun 回复于:2005-03-31 14:29:53
支持,不错。但是我使用了各个厂家的国定终端程序,所以不存在用户数的问题。
关注......!!!

 qthshilei 回复于:2005-03-31 21:23:23
[quote:c58fc81be0="zhkun"]支持,不错。但是我使用了各个厂家的国定终端程序,所以不存在用户数的问题。
关注......!!![/quote:c58fc81be0]

如果你有多家网络终端厂家,而你用多家的固定终端程序。则配置起来非常麻烦。
如果选用一个通用的程序,则非常方便了。客户端只需要IP地址对了,终端可以随意更换的。

而且,各厂家的程序功能不同。有的多,有的少。

我现在就有部分实达的网络终端,也没有用实达的程序。很多功能实达的程序实现不了。

 zhkun 回复于:2005-04-01 14:39:20
其实我也想使用统一的固定终端程序,但是我觉得目前我使用的还好,如果没有特别的要求,我不大算换掉,因为没有银子。再者我使用的还有普通终端开多个屏幕,也使用网络终端开多个屏幕。
qthshilei  好样的,很好,的确不错。    
我依然关注..........,

 saintdragon 回复于:2005-04-01 15:59:27
不错呀!支持!

 HNPOST_NETKING 回复于:2005-04-01 21:08:49



!!!!!!!!!!!!

 menp9999 回复于:2005-04-05 11:40:08
理解有错误的地方不要见怪:
你所要说的意思终端必须是网络终端,固定终端号是通过IP来实现的,从你所说的单口终端服务器来讲,也就是说明了你有一个问题没有办法解决的:
仿真终端要是有两个怎么办呢?也就是说我在一台PC上开了一个仿真终端,开第二个就要出错了吧?而且也不会有单口的终端服务器呀.
其次,网络终端一般的都支持多应用,也就是说一个网络终端可以多次TELNET,你的程序怎么解决呢?

 注册错误 回复于:2005-04-05 12:36:37
确切点说,是通过 IP + 端口 来实现的,所以楼上的所有问题就不用回答了

搂主的程序是针对telnet 连接来的,并不关心发起的连接来自自身还是任何品牌的终端服务器或者PC ; 意义在于身份的认定和配合很多业务程序对终端号有绑定要求来的;如果为了安全,简单的unix下面的防火墙也能做到

楼主的单端口终端服务器是精华,只要解决好窃电和成本,比多口的好的多,只有单口才能解决两个致命的问题:端口隔离和232-232 的高速无措传输。供电能从终端端口解决最好,很多终端有供电针脚,价格最好在200以下,相对传统模式有优势

楼主的免费版东西 可以支持到接近 100 个,已经不错了,几乎一般的网点应用都够了;唯一遗憾点的是那个几秒钟的广告,可能对实际应用有些影响,喜欢动脑筋的可以自己想想办法,提示一点,这里的代码是移位处理的

 qthshilei 回复于:2005-04-05 12:42:37
[quote:b25591a2b6="menp9999"]理解有错误的地方不要见怪:
你所要说的意思终端必须是网络终端,固定终端号是通过IP来实现的,从你所说的单口终端服务器来讲,也就是说明了你有一个问题没有办法解决的:
仿真终端要是有两个怎么办呢?也就是说我在一台..........[/quote:b25591a2b6]
可能是我没有说清楚:
终端可以是网络终端,也可以是netterm,也可以使用单口终端服务器+一般串口终端.由于程序是通用的,所以用什么都没有问题.
以上三种方式都可以实现一个IP多个画面.因为tcp/ip中确定联接的不光是IP,还有服务器侧的端口号.本程序默认可以配置20个不同的端口,你只需在终端侧将服务器端口配置不同就可以了.这样,如果终端支持的话,一个终端最多支持20个屏.如需更多可以修改源程序.
如果多个屏配置同一个端口,则第二个屏联接上来时,第一个屏自动断开.也不会报错.

单口终端服务器也是我们生产的.

 qthshilei 回复于:2005-04-05 12:44:55
[quote:d4e84aaea5="注册错误"]确切点说,是通过 IP + 端口 来实现的,所以楼上的所有问题就不用回答了

搂主的程序是针对telnet 连接来的,并不关心发起的连接来自自身还是任何品牌的终端服务器或者PC ; 意义在于身份的认定和配合很多业务程序?.........[/quote:d4e84aaea5]
高手,说的这么明白,我还想不想赚钱了!!

 注册错误 回复于:2005-04-05 13:01:36
楼主也在
看到楼主的有奖查错,我才装上看看的,发现有时候出过log写错,报告给你了,还等着拿奖品呢

单端口终端服务器不错,可惜不管采购了,不然一定支持支持你

 qthshilei 回复于:2005-04-05 13:19:31
不好意思,这几天有个电力收费系统要做.对方也很急的.正在做,等做完了我再详细测一下,但你的问题很有可能是核心参数的问题.到时我试试吧!!

 menp9999 回复于:2005-04-05 14:35:47
[quote:4d085abbb4="注册错误"]确切点说,是通过 IP + 端口 来实现的,所以楼上的所有问题就不用回答了

搂主的程序是针对telnet 连接来的,并不关心发起的连接来自自身还是任何品牌的终端服务器或者PC ; 意义在于身份的认定和配合很多业务程序?.........[/quote:4d085abbb4]
如果你不懂,我也没有办法,请问你是怎么固定客户端的PORT???
难道就仅仅只要固定服务器端的端口就可以了嘛?
客户端端口的固定除非你自己做的程序,否则你怎么修改?一般的客户端端口是随机的,所以不存在什么通用的固定终端程序,除非制定一个规范,所有的客户端都遵循这个规范,至少我目前还是知道没有这么个规范的存在.

 qthshilei 回复于:2005-04-05 14:39:41
客户端端口就是随机的,
这个程序固定的不是tcp/ip的端口号,而是终端号,比如:ttyp11 ttyp12等等.

 menp9999 回复于:2005-04-05 14:41:33
[quote:d5e501dbca="qthshilei"]
可能是我没有说清楚:
终端可以是网络终端,也可以是netterm,也可以使用单口终端服务器+一般串口终端.由于程序是通用的,所以用什么都没有问题.
以上三种方式都可以实现一个IP多个画面.因为tcp/ip中确定联接的不光是..........[/quote:d5e501dbca]
1.其实单端口终端服务器我没有见过,不过可以理解为同没有显示器的网络终端,或反过来理解都可以.只是各家的叫法不同.
2.TCP/IP联接是有端口不错,但是不仅仅是服务器的端口.一个TCP/IP连接的五元组你只用了四个,所以不是唯一的,你没有办法固定,你之所以做到了什么固定,只不过你缺省的认定了客户端只能同时用一个端口而已.当然如果你制定一个规范,大家都支持某种规范就好了.

 menp9999 回复于:2005-04-05 14:43:38
[quote:69f4dfd116="qthshilei"]客户端端口就是随机的,
这个程序固定的不是tcp/ip的端口号,而是终端号,比如:ttyp11 ttyp12等等.[/quote:69f4dfd116]
举个例子来说明吧,STAR的某型号网络终端,可以同时用8个TELNET,如果有两个TELNET到同一个IP的主机,请问你怎么固定?可以解释一下原理吗?
客户端通常是随机的使用端口,但是你真要不随机硬挑一个,也是可以的.譬如华为的产品,GTS等等,都是客户端和服务器端配对的,
我的理解是通用,必须要以规范为基础,否则各做各的,很难做到通用.

 qthshilei 回复于:2005-04-05 15:09:55
天啊!!
这是一个已经实现的软件了.请不要怀疑.如实在不信,可以到我网站上下一个免费版的试一下.

客户端端口号是固定不了的.任何一种产品也不可能傻到要固定客户端的端口号,如果真要这样做会给自己留下非常多的麻烦的.
如你所说,如果 服务器,客户IP,服务器端口号,客户端口号都是写死的.如果主机不关的话,而客户端关闭重启的话,这个联接如何继续!!!上台机器的包的ack seq 发到多少了,谁知道啊!!!

固定方式非常简单.在服务器侧打开多个端口,如果某一端口有客户机联接,我们可根据其IP和其访问的服务器端口号来从配置文件中取出其终端号,这样就能实现固定其终端号.

现在所有的通用,是指使用telnet协议的设备通用.至于各厂家特殊产品,谁也做不了通用的.
但现在多数厂家的产品都支持telnet.

 qthshilei 回复于:2005-04-05 15:11:45
另外说一句不该说的话.
我不喜欢你的签名.

 menp9999 回复于:2005-04-05 16:01:48
[quote:5e561ae951="qthshilei"]天啊!!
这是一个已经实现的软件了.请不要怀疑.如实在不信,可以到我网站上下一个免费版的试一下.

客户端端口号是固定不了的.任何一种产品也不可能傻到要固定客户端的端口号,如果真要这样做会给自己留下非常多的麻..........[/quote:5e561ae951]
呵呵,你就是呼地也是那么回事情,你的口气很象我的一个故人,呵呵,他说让做一个IP管理的程序,我说做不到,他也是象你这么说,"咳,人家都已经做出来了,什么不行",我如是心虚向他请教,他得意洋洋的说,根据MAC地址的唯一性来做管理的,我当场晕倒.
你做这么个程序也不容易了,比我这么光说不做强多了,其实我在疑问的同时就表明了态度,理解不够,理解错了希望不要见怪.
根据客户端IP固定终端是不是可能的事情,上面我已经做了说明,你之所以能固定,只不过是默认客户端只有一个TELNET.其实你自己也提到了第二TELNET就断掉了第一个,假设第一不断的,如何区分他们的呢?固定客户端的PORT也只能是解决你所谓固定问题了,否则同一个IP多个TELNET你怎么固定.
至于你喜欢不喜欢我的签名那是你的事情,而且我的签名也不是一天两天了.
做什么事情要多用脑子想,我个人观点,与你有关无关取决于你,不关我的事情.

 netop5 回复于:2005-04-05 19:42:24
好久没来,一进来就看到了这么醒目的主题,看来我落伍啦,不过我在这里说上一句,楼主请不要生气,楼主的程序我这里也用了,如果是IP+应用端口绑定终端端口号的unix程序大家可以向华为公司或上海怡科公司免费索取,我就在去年向他们免费索要过,而且还一直在用,如果是用串口模式的方式想固定虚屏的虚端口,如(ttyp11,ttyp12,ttyp13),我也编写了一个小小的shell,大家想要的话可与我联系email:netop5@163.com,或是在这里发帖。
 :em02:  :em02:  :em02:  :em02:  :em02:  :em02: 
[color=orange:c3df4adaa9][size=24:c3df4adaa9]热烈庆祝NETOP5注册BBS.CHINAUNIX.NET三周年[/size:c3df4adaa9][/color:c3df4adaa9]

 注册错误 回复于:2005-04-05 21:05:24
看明白些了
大概 menp9999   讲的是在复杂的现实网络情况下的情况

不过这种东西和这个论坛的的成员,大部分都是金融等行业的人员,在业务网络内,通常是简单的拓扑网络,基本上是路由器+交换机,由于业务软件的多样性和复杂性,不存在NAT和PAT,VPN等情形,也不允许存在防火墙

如果不然,仅就通常的NAT,楼主的这个东西也是没有多少意义的,只能另辟蹊径,譬如依赖用户密码来判定身份

 注册错误 回复于:2005-04-05 21:18:09
menp9999 有点苛求了

仅就楼主的这个东西而言,你可以仅仅看作是他的销售的那个单端口网络产品的一个驱动程序,比起各家类似产品的驱动来,不同的就是通用一些,可以用在其他的一些终端服务器上或者在unix下的telnet上提供一些增强,楼主的水平也没有到可以开宗立派,要建立一个协议或者系统出来

 menp9999 回复于:2005-04-06 00:17:32
[quote:129588d0c7="注册错误"]menp9999 有点苛求了

仅就楼主的这个东西而言,你可以仅仅看作是他的销售的那个单端口网络产品的一个驱动程序,比起各家类似产品的驱动来,不同的就是通用一些,可以用在其他的一些终端服务器上或者在unix下的tel..........[/quote:129588d0c7]
你这么讲就是于我的本意相违背了.
我的本来意思是搞个类似TELNET协议或是扩充TELNET协议,以便能开发出真正的通用固定方法来,固定的难度不在于服务器端的不兼容,而是客户端,如果以TELNET的实现为例子,增减一个-F选项,F的参数表示固定的客户端的唯一标志,默认的为0.毕竟固定终端在目前是广泛应用.因此只要客户端的telnet实现都支持F选项,都可以做到固定终端啊.所以我觉得通用必须标准为先,我不是做产品的,所以没有机会搞东西,因此我建议一些厂家可以发布修改后的关于固定终端的协议.提交成RFC.另外化为刚开始做终端服务器的时候就因为流控没有做好,固定终端时打印就造成数据拥塞而PING不通的现象,不知道是以为实现的原因还是协议本身的问题,这些都可以作为修正的内容啊,看来WAPI引起的标准意识还是比较弱的.

 menp9999 回复于:2005-04-06 01:17:30
可以做到通用固定终端,但是telnet 必须支持,23,28选项,而这个缺省的是不支持的.具体的可见rfc854,rfc946,rfc779

 zhkun 回复于:2005-04-06 08:02:17
两位,大家都是搞技术的,有不同的意见可以心平气和的解释,不要伤了和气,大家这里见面也是一种缘分吗。有时问题是在讨论中更加清晰,大家说对不对呀!

 menp9999 回复于:2005-04-06 08:29:58
[quote:3df269c427="zhkun"]两位,大家都是搞技术的,有不同的意见可以心平气和的解释,不要伤了和气,大家这里见面也是一种缘分吗。有时问题是在讨论中更加清晰,大家说对不对呀![/quote:3df269c427]
我是卖小菜的贩子,习惯成自然的嗓门大,不过没有感觉到别人伤了我的和气,当然也没有感觉到伤了别人的和气,呵呵.

 注册错误 回复于:2005-04-06 08:55:17
提议很好,就目前终端服务器来讲,是超越telnet还是变通,是很难选择的两条路,除非各自为战的大厂商可以有共识

楼主与menp9999 的不同,在于楼主是在做自己的产品介绍,menp9999是借题发挥,提出更高的高度,一个是实践中的前卫,一个是理论上的勇者

很好很好,都支持

 qthshilei 回复于:2005-04-06 10:01:58
华为产品的问题应该是其软件的问题.而与标准无关.

至于要找一个统一的标准,当然是好.但非常不容易.至少我是没有这个能力.而且,也很少有厂家能支持的.

现在我做的,是基于各厂家都支持telnet做的.

当然,telnet一般使用23端口,但现在各厂家的网络终端,及仿真终端都支持修改服务器侧端口号,所以我们就利用这个实现其功能.

 menp9999 回复于:2005-04-06 10:33:40
[quote:fe60f0d32b="qthshilei"]华为产品的问题应该是其软件的问题.而与标准无关.

至于要找一个统一的标准,当然是好.但非常不容易.至少我是没有这个能力.而且,也很少有厂家能支持的.

现在我做的,是基于各厂家都支持telnet做的.

当然,telne..........[/quote:fe60f0d32b]
我没有说清楚,昨天晚上我仔细查了一下TELNET的资料,其实TELNET支持固定终端的协议,我说的23不是指端口号,而是指TELNET的选项的(TELNET SEND-LOCATION Option)定义,你可以参考RFC854,RFC779,只不过23子选象缺省的是不支持.
流控好象缺省的也是不支持,据我了解的情况,好多产品在终端打印机的时候都造成PING不通的现象,华为好象第一个把流控加进去了(流控也是TELNET支持的一个选项).如果你做的产品要是没有做流控的话(你的产品不存在这个问题,因为你是单端口),你的产品实现是TELNETD的实现吗?如果是那样的话,你一定要解释TELNET协议的那些命令选项了.我觉得好麻烦啊.呵呵

 menp9999 回复于:2005-04-06 10:48:42
[quote:01a6b23fbd="netop5"][/quote:01a6b23fbd]
是把是把虚终端的设备号做个连接,或者是创建一个设备号相同的字符设备啊?

 qthshilei 回复于:2005-04-06 11:12:01
流控其实是系统做的.在steptty侧其实很简单的.无论从技术上还是原理上.唯一费劲的就是多进程管理上和多设备管理上.但对于高手来说也是不难的.因为我也是在接到活后才开始学习socket的.
我没有用到telnet中的选项.只是一个socket 而已.很简单的.因为我要的是仿真一台串口终端.串口终端中很多东西是配置到终端上的.不用协商的.

我看过telnetd源码,但这种方式只能应用于送login方式,很多地方是不用送login的,所以实现上与telnetd完全不同.

流控更好办了.由于是用tcp/ip,客户端接收多少,我就从设备文件中取多少.这不就实现流控了吗?

难的主要在单口终端服务器侧,对于我们专门在sco下编程的人来说,可难多了.
终端服务器与终端间走xon/xoff的.如果我有缓冲区,就从服务器接收数据,否则就向服务器返回windows=0.服务器就不给我发了.
在这期间,一直保持终端服务器正常运行.而不能因为缓冲区满了,而不接/不发其它数据了.
因为我支持4个屏的.如果一个屏在前台,另外4个屏在后台,也得让其运行啊!!其它人也得能ping通我啊!!

所以说,华为的设备在开发时结构有问题!!他在缓冲区满了后,就一直在等待终端接收其数据,所以会出现ping不通的.

 menp9999 回复于:2005-04-06 11:52:08
[quote:d2d8f8fd8f="qthshilei"]流控其实是系统做的.在steptty侧其实很简单的.无论从技术上还是原理上.唯一费劲的就是多进程管理上和多设备管理上.但对于高手来说也是不难的.因为我也是在接到活后才开始学习socket的.
我没有用到telnet中的选项.只..........[/quote:d2d8f8fd8f]
我没有看明白你所要表达的意思,如果你说的仅仅用telnet协议的端口,那么你的实现同TELNET没有什么关系.
其次,你说的4个屏,你如何区分他们他们的呢?
关于流控问题,我的理解同你有点不一样,你所说的只是一条线路点到点的流控,各段的点到点的流控做好了,并不代表整条线路上的数据吧就有了流量控制,这是两把事情.XON/XOFF等等同TELNET的流控不是同一个概念,至少在代码上就不一样了.
你做过终端打印大量数据的测试么?
华为的终端服务器(也包括其他的一些产品)出现的流控问题,并不是缓冲满了的问题造成的,而是因为他首先是路由器,路由器用队列接受报文然后转发,所以缓冲没有满,也会造成PING的现象,因为终端可以想象成是一个慢速输出口,先进先出,先进的没有出完,后进的就不能处理.尽管后进还是可以进行.
所以解决问题的方法有两种:一是做整条虚终端线路上的流控,这是最彻底的改变方法,也就是说,在路由器上的进程察觉到终端缓冲满或者他设置一个接受阈值到达后,他就发个服务器NVT一个流控指令注意这个流控指令一般的不可能是XON\XOFF,他遵循TELNET的流控协议;一条就是用两个队列,但是这会造成路由器资源的浪费和线路资源的浪费.
就以你的例子来证明把:NVTS(服务方进程)----NVTC(客户方)----T(实际终端)
这是NVT的体系结构,S/C的流控和C/T的流控都做好了,不代表S/T的流控就做好了.所以流控不是系统自己做的,他自己做的,只不过是对下一个节点的,至于整条线路,还是必须自己做.因为节点是存储转发的.

 qthshilei 回复于:2005-04-06 13:21:43
汗,我确实没做过打印大量数据的测试.虽然我做过很多测试程序来测试这个东西,但确实没打印过大量数据.而且在实际环境上,也没有谁说过打印大量数据不好用的问题.所以,我马上找台终端(实达 560+ )找台打印机(lq300K) ,并做个shell生成打印数据,shell如下:
aa=10
bb=1
echo "\033%5i\c" > /tmp/pr1
while [ 1 ]
  do
   while [ $bb -lt 20 ]
    do
    echo "$aa \c" >> /tmp/pr1
    bb=`expr $bb + 1`
   done
    bb=1
    echo "ok" >> /tmp/pr1
   echo "$aa"
   aa=`expr $aa + 1 `
   if [ $aa = 99 ]
     then
       aa=10
    fi
done

在生成了大量数据后,用以下命令打印
echo "\033[5i\c";cat /tmp/pr1;echo "\033[4i"

在同室人员的强烈抗议下,打印了17页,还没有发现乱码.
不知正常的大量数据是指多少数据.

 qthshilei 回复于:2005-04-06 13:37:52
同时另一屏也在一直ping他,也没有发现断的情况.

其实,流控的实现,有很多方法.哪一种方法都能达要你要的效果.

至于配置4屏是这样配置的.

我细点说:
我的单口终端服务器IP为192.168.0.6.
我的sco 服务器IP为 192.168.0.5
在sco服务器上安装steptty,并配置如下:
port.ini
3000    #管理端口
3001   #第一屏
3002   #第二屏
3003
3004

tty.ini
ttyp11 192.168.0.6 1 1 24 0#
ttyp13 192.168.0.6 2 1 24 0#
ttyp14 192.168.0.6 3 1 24 0#
ttyp15 192.168.0.6 4 1 24 0#

然后 telnet 127.0.0.1 3000
欢迎光临steptty

stop    关闭所有终端,尽量不要使用
kill    终端号 关闭一个终端 如 kill p21
refresh 重读tty.ini
help    帮助
exit    退出
step>refresh
运行refresh后按exit退出.

然后配置/etc/inittab 加入这几个终端.
最后 enable 一下.

服务器侧配置完成.配置愘户端
打开终端,按ctrl+g ,ctrl+d ,出现画面.选0设置.
输入设置密码,进入设置菜单.
先配置本机地址.192.168.0.6 
然后分别配置各屏的参数.
第一屏 名字:test1 IP 192.168.0.5 端口号 3001
第二屏 名字:test2 IP 192.168.0.5 端口号 3002
第三屏 名字:test3 IP 192.168.0.5 端口号 3003
第四屏 名字:test4 IP 192.168.0.5 端口号 3004


退出后,并机重启.
就好使了.

 qthshilei 回复于:2005-04-06 13:41:15
现在,已打印30页了,明显没有以前顺利了,打印一会,打印机停一下.
暂停灯亮一下,过一两秒种继续打印.
这期间不丢数据,单口 终端服务器也能ping通.

打印头烫手,可能是打印机太热了,为了降温而自己暂停的.

 sdccf 回复于:2005-04-06 14:29:12
对,这情况是打印机的问题,自动来适应环境.

 menp9999 回复于:2005-04-06 14:46:30
[quote:70f43b69e6="qthshilei"]谕?胰嗽钡那苛铱挂橄?打印了17页,还没有发现乱码.
不知正常的大量数据是指多少数据.[/quote:70f43b69e6]
其实没有必要打那么多的,几页纸就可以了.华为的是一打印立马就PING不通了.

 qthshilei 回复于:2005-04-06 14:53:46
看样子,我的东东还是支持你所说的流控的啊!!!

 menp9999 回复于:2005-04-06 15:03:53
1.按照你的那样配置,多端口终端服务器也是可以的啊,只要服务器端有PORT就可以区别了.
2.看你的描述,你的客户端是用TELNET,你又说你不收发解释TELNET协议包文,用在别的终端服务器可以嘛?是不你的那个单端口终端服务器TELNET也是你自己写的呢?据你讲还可以用别的终端仿真软件呢.所以我觉得不你自己写客户端的TELNET.应该可以用在别的终端服务器上的.

 menp9999 回复于:2005-04-06 15:14:09
[quote:79bc4522e6="qthshilei"]看样子,我的东东还是支持你所说的流控的啊!!![/quote:79bc4522e6]
两回事情,TELNET协议有个流控选项,先是C/S两端协商看看双方是否都支持.


"难的主要在单口终端服务器侧,对于我们专门在sco下编程的人来说,可难多了. 
终端服务器与终端间走xon/xoff的.如果我有缓冲区,就从服务器接收数据,否则就向服务器返回windows=0.服务器就不给我发了. "
你的这一段描述我没有看明白,这个"我"指的是你的类TELNETD实现?还是终端服务器的软件?按照我的理解,XON/XOFF在终端服务器上就被解释掉了,他只是控制终端和终端服务器之间的流量啊.如果XON/XOFF能传递到TELNETD的实现上,那不就是已经整条线路都有了流量控制了嘛.

 qthshilei 回复于:2005-04-06 15:33:30
是这样的:
steptty固定终端号程序是我们做的,支持的客户端有普通网络终端,仿真终端,还支持我们自己做的单口终端服务器.

单口终端服务器也是我们做的,是用C写的硬件产品,直接对网卡操作,从网卡中读取数据包,并送到终端上,从终端上读取数据包,并送到网络上.
xon/xoff是在与终端交换数据时用的.

单口终端服务器+一般串口终端 = 网络终端 . 而且有个别厂家也是这样做的.

我举的列子是配置我自己的终端服务器用的.

另:这几天我要出门.暂不能回贴了,对不起.

 menp9999 回复于:2005-04-06 22:24:49
[quote:4120bbeb6d="qthshilei"]是这样的:
steptty固定终端号程序是我们做的,支持的客户端有普通网络终端,仿真终端,还支持我们自己做的单口终端服务器.

单口终端服务器也是我们做的,是用C写的硬件产品,直接对网卡操作,从网卡中读取数据包,并送?.........[/quote:4120bbeb6d]
呵呵,这么客气,我是闲着没有事情,向你学习哦.只是有一点我不明白,你的服务器端程序如果不解释接受和按TELNET协议规定发送包文,别人的产品怎么TELNET你的服务器端呢?

 ykfm 回复于:2005-08-23 16:21:50
linux下可以用吗?

 UnKnow365 回复于:2005-08-24 21:33:13
20用户4屏不够实用

 zhkun 回复于:2005-08-25 07:46:29
不要介意,我觉得实用价值不大,不过还是值得鼓励。

 Nestle 回复于:2005-08-25 13:11:46
继续嘛,学到不少东西

原文转自:http://www.ltesting.net