背景:
阅读文章

MUD FTP服务器的修缮(上)

[日期:2007-05-10] 来源:  作者: [字体: ]

写这篇文章的目的一是介绍修改 MUD 的 FTP 功能使 CuteFTP 能正常显示
FTP 服务器的目录的方法(不一定是最好的喔),二是希望这种方法能为有
兴趣者发现问题和解决问题提供一个参照。

    一切都是因为要对运行中的 MUD 的部分程序进行修改而起的。
    当运行中的 MUD 需要作比较小的改动,小到不值得将 MUD 服务器重新


启动一次时,有两种方法可以实现:一是使用 MUDOS 的 ed 命令(MUDOS
最先是在 UNIX 系统下开发出来的,因此行编辑的命令叫 ed 而不是 edit,
当然我们不用管这个,只管敲 edit 就行了,edit motd、edit here……
随叫随到,但不大好用,尤其是编辑大文件 :-( );另一个方法就是通过
MUD 的 FTP 功能下载——编辑——上传,先载入 MUD 的 FTP 服务程序,
通常是 /adm/daemons/ftpd.c ,在 /adm/etc/preload 文件中增加一行:
/adm/daemons/ftpd
就可以在 MUD 启动的时候连带启动 FTP 服务器,也可以在 MUD 运行的过程
中让有权限的巫师使 update /adm/daemons/ftpd.c 来加载 FTP 服务器。接
着使用 CuteFTP 之类的软件连接到 MUD 的 FTP 服务器,下载源程序到自己
的机器上,用 UltraEdit 等功能较强、使用较方便的编辑器来修改,随你怎
么改都行,但别忘了存盘 :-) 改好了再用 CuteFTP 传回 MUD 服务器,最后
update 使改动生效。
    CuteFTP 是很优秀的软件,但不是万能的,它的作者没有专门为 MUD 的
FTP 服务器考虑过(其实应该是 MUD 的 FTP 程序的作者没有认真考虑过啦),
便导致了用 CuteFTP 连接 MUD 的 FTP 服务器时,默认的目录显示方式不能
正常的显示服务器端的目录结构,以 FTPD V5.8 为例,一个目录都显示不出
来,真……把 CuteFTP的目录显示方式设为简单方式(编辑连接的 Advanced
属性,把 Simple directory listing 勾上)只显示文件、目录名,忽略文件
大小、创建日期等)稍微好些,但切换目录还是很不方便,习惯的鼠标双击在
这里不能用了。
    CuteFTP 不能正常显示目录,是因为 FTP 服务器传回的数据格式不正确,
解决之道就是使 FTP 服务器传给 CuteFTP 的数据格式正确化,别无他法。别
把这个格式想的太难太深奥,只要细心些,它其实是很简单的——无非就是些
字符串罢了,说到字符串的处理,有信心了吧!

    接下来就得弄到这些字符串的一个样本。从哪里弄呢?从 CuteFTP 是不
行的,得依靠一个比较原始的 FTP 软件——就是吻都死自带的 ftp.exe
打开一个 DOS 命令窗口,敲入 ftp ,回车,就会出现提示符:ftp>
接着敲 open <mud.server> <port> 连接到 MUD 的 FTP 服务器,输入帐号
和密码(如果 MUD 的管理员为你开了个使用权限,FTP 的帐号和密码就是你
在 MUD 里的帐号和密码)登录。比如:
ftp> open localhost 8900
Connected to User.ChinaTone.com.
220- 西游记 FTP server (Version 5.8 (MudOS/LPC)) ready.
220  Please login as yourself.
User (User.ChinaTone.com:(none)):fof
331 Password required for fof.
Password:********
230 No directory! Logging in with home=/
ftp>

至此已登录成功。
敲一个 ls (列目录)命令:
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for ls (220 bytes).
adm/
cmds/
config.xiyou
d/
daemon/
data/
doc/
feature/
include/
log/
mudos.exe
mudos.log
obj/
std/
226 Transfer complete.
ftp: 237 bytes received in 0.00Seconds 237000.00Kbytes/sec.
ftp>
看啦,MUD 的根目录就是上面这些东东。带"/"尾巴的是目录,不带的是文件。
这只是简单列表而已,就相当于 CuteFTP 里把 Simple directory listing
那个选项勾上。看详细列表,得加个 -l 参数或者使 dir 命令:
ftp> ls -l (或 dir )
200 PORT command successful.
150 Opening ASCII mode data connection for ls (1316 bytes).
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:11  ./
drwxrwsr-x         MudOS          Root    <DIR>  Jan 01  1980  ../
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:11  adm/
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:11  cmds/
-rw-rw-r--         MudOS          Root      5504  Nov 15 00:10  config
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:11  d/
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:12  daemon/
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:12  data/
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:12  doc/
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:13  feature
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:13  include
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:13  log/
-rw-rw-r--         MudOS          Root    700416  Jun 29 13:09  mudos.
-rw-rw-r--         MudOS          Root      5185  Nov 15 12:06  mudos.
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:13  obj/
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:13  std/
226 Transfer complete.
ftp: 1335 bytes received in 0.22Seconds 6.07Kbytes/sec.
ftp>

以上看到的是 v5.8 版的 MUD FTP 服务器,下面来看看标准的 FTP 服务器:
(就拿北大的 FTP 服务器做例子,这个服务器应该是蛮标准的吧)
ftp> open ftp.pku.edu.cn
……
ftp> ls -l
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 55880
-rw-r--r--   1 ftpadmin ftpadmin     984 Nov 19 1999  .message
----------   1 ftpadmin ftpadmin       0 Sep  6 1999  .notar
-rw-r--r--   1 ftpadmin ftpadmin     534 Nov 19 1999  WELCOME
d--x--x--x   2 ftpadmin ftpadmin     512 Nov 11 1999  bin
drwxrwxr-x   2 ftpadmin ftpadmin     512 Jul  5 1999  dev
d--x--x--x   2 ftpadmin ftpadmin     512 Nov 15 1999  etc
drwxrws-wt   2 ftpadmin ftpadmin   40960 Nov 15 10:10 incoming
-rw-r--r--   1 ftpadmin ftpadmin 25941142 Nov 10 00:06 ls-lR
-rw-r--r--   1 ftpadmin ftpadmin 2593008 Nov 10 00:06 ls-lR.gz
-rw-r--r--   1 ftpadmin ftpadmin       0 Nov 15 00:00 ls-lR.new
drwxr-xr-x  25 ftpadmin ftpadmin    1024 Oct 12 18:28 pub
drwxr-xr-x   3 ftpadmin ftpadmin     512 Jul  5 1999  usr
226 Transfer complete.
ftp: 752 bytes received in 0.00Seconds 752000.00Kbytes/sec.
ftp>

OK!标准的目录列表格式已经拿到了。接下来,
将 MUD FTP 和标准 FTP 各抽出一个文件项来比较:
-rw-rw-r--         MudOS          Root    700416  Jun 29 13:09  mudos.
-rw-r--r--   1 ftpadmin ftpadmin     534 Nov 19 1999  WELCOME

将 MUD FTP 和标准 FTP 各抽出一个目录项来比较:
drwxrwsr-x         MudOS          Root    <DIR>  Oct 29 22:13  std/
drwxr-xr-x   3 ftpadmin ftpadmin     512 Jul  5 1999  usr

怎么样,很不相同吧?文件和目录都各有千秋,MUD FTP 的文件名不完整,目录
名后面的"/"竟成了多余的 :-( ,"<DIR>"也是多余的!

(未完待续)

尊重作者 转载请注明出处52mud.com

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容      
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论