【 以下文字转载自 NetResources 讨论区 】
发信人: newclear (clear), 信区: NetResources
标 题: mBBSProxy-在Windows平台下的bbs穿梭服务器 (转载)
发信站: BBS 水木清华站 (Tue Jan 8 15:36:26 2002)
发信人: newclear (clear), 信区: NewSoftware
标 题: mBBSProxy-在Windows平台下的bbs穿梭服务器
发信站: BBS 水木清华站 (Tue Jan 8 15:13:59 2002)
目前测试中: telnet://166.111.168.12:8888
下载地址:
ftp://166.111.168.12:8021/mBBSProxy/mBBSProxy_02.01.08.zip ftp://166.111.168.12:8021/mBBSProxy/mBBSProxy_src_02.01.08.zip mBBSProxy
在Windows平台下的bbs穿梭服务器
我本来是在做自己的Socket - iostream包装,做这个软件也是一
时兴起,原意是用来调试sockstream类库,结果做到后来越做越
多,做了一个bbs按键分析器bbskey类,还把Windows的系统服务
也给包装成了一个现成的类ntservice了 :)
使用方法:
mbbsproxy [/install | /remove | /console]
/install 将mbbsproxy安装为nt服务mbbsproxy;
/remove 删除mbbsproxy服务;
/console 作为命令行方式运行.
2K用户使用 mbbsproxy /install 命令安装服务,然后可以到管
理工具中的服务中找到,进行设置(服务默认设置为手工启动)。
9x用户?可以运行么?如果可以运行的话,可以作为命令行运行:)
穿梭服务端口默认是23,可以通过mbbsproxy.exe相同目录下的
bbsproxy.ini文件进行更改。
bbs列表设置保存在与mbbsproxy.exe相同目录下的bbslist.ini文件
中,每行为一个bbs服务器,格式为:
BBS名称 BBS服务器域名 [ BBS服务器ip [ 端口 ] ]
缺省端口号为 23
如果不指定ip,则使用域名作为ip字符串
授权:
mbbsproxy可以完全free的使用,包括二进制可执行文件和源代码
的公开部分,任何人都可以用做任何非商业用途,可以自行更改
程序代码、编译执行、并再加以发布。
现在这个版本已经基本上可以使用了,不过还有一些小问题:
1. 界面没有完成 (我实在没有兴趣做界面的说,还是请AsciiArt
高手来做吧 :) )
2. 当使用telnet(windows和linux下)通过mbbsproxy连接的bbs服
务器使用login+bbs系统帐号时,会失去响应,STerm和CTerm没有
问题。
这个问题我分析过,问题出在client与server的telnet
对话,由于mbbsproxy与client进行过一次telnet对话(现在其他
的代理没有做这一步,在linux下面就不能使用上下键 :( ),
telnet软件好像在第二次对话的时候会对server的某些询问不应
答,结果server在等待应答,client在等待数据... :(
对于程序代码,也在此做一点点说明
由于本来是用来测试我的sockstream类用的,程序里的socket方
面使用的就是我自己的类了:)
sockstream类这里提供一个库文件mbbsproxy.lib和相关的3个头
文件,相应的接口可以查看头文件的内容。
ntservice.h nt服务的类,包装了相关的windows api
sockbase.h socket的基本类,是在WinSock Api基础上的一
个薄包装
sockstream.h 实际使用的socket流类,使用 C++ 中的 STL 的
iostream的方式访问网络连接。
以上3个头文件请勿修改,否则与mbbsproxy.lib的接口不一致将不
能连接程序。
与bbs、telnet相关的代码在以下文件中
vk.h 键定义表,实际上是提取出来的windows里VK_***
的宏定义
telnetios.h telnet、bbs相关的类、函数等
mbbsproxy.cpp 主程序文件
这3个文件可以自行修改,我想主要可能是修改穿梭界面,对于相应
的代码,提示如下:
1. 程序使用多线程编制,所有线程共享静态的界面资源(界面背景
框架等,server函数中生成),与界面相关的函数在mbbsproxy.cpp
文件中。(由于共享,这些资源只生成一次,运行时可以提高效率)
2. 按键通过一个bbskey类(代码在telnetios.h)实现控制,用于分
析处理输入的按键,然后在一个循环中判断进行的操作
(mbbsproxy.cpp中),要修改按键功能需要改动这部分代码。
不过bbskey类还没有实现完全,目前只支持有限的少数键,要加
入新键的定义需要修改其源代码(telnetios.h中),目前只能输入,
还不能输出(是支持的键更少)。 :(
3. 输出使用的是 STL 中的iostream的操纵符(manipulator)方式,
定义在telnetios.h中,用于控制终端的清屏、颜色、定位等。
==========================================================================
Copyright 2002 Steven Clear Peng
Steven Clear Peng <newclear@sina.com / newclear@smth.org>
January 8, 2002
==========================================================================
--
修改:newclear FROM 166.111.168.12
FROM 166.111.168.12