作者:上犹日期:
返回目录:win7问题
内容导航:
一、TELNET的一个BUG
下面这个链接是Linux分发包Ubuntu的关于Telnet命令的Man Page,
http://manpages.ubuntu.com/manpages/karmic/man1/telnet-ssl.1.html
打开这个Man Page,把页面拉到最后一行,你会看到下面这个BUG(“BUGS:源代码不易读!”)
The source code is not comprehensible.
Telnet的源代码在这里:http://packages.ubuntu.com/source/dapper/netkit-telnet,下载下来一看,还真是不易读,简单地看了一下代码,发现至少有这样一些问题:
- 空格和Tab键混用的缩进,导致很多代码在没有缩进。
- 大量的#if #else以及大量的各种预编译宏。以及一些怪异的宏。如:
#ifndef B19200
#define B19200 B9600
#endif
#ifndef B38400
#define B38400 B19200
#endif
- 什么叫在C中写C++,第一次见。(在terminal.cc中间居然出现了几个class)
- 变量命名很不直观,大量的old, tmp, c1, c2, s1, s2, s3 等学校里用的变量名,只有作者自己知道是什么意思。函数命令的风格也不一致,编程风格也很不一致,基本没有编程规范。
的确很不易读。不管怎么样,很欣赏在man page中把源码的易读性列为BUG的这种作法
二、为什么windows下telnet任何ip的21端口都是通的?
21 端口一般如果不做改动,将是FTP服务端口。 一个服务器如果21端口真正的通,那么telnet其21端口,会出现FTP服务端的信息,比如用的是surv-u还是其他FTP服务端。如果仅仅是出现一个黑色框,并不能说明这个端口就开着。至于,为什么telnet任何一个IP或者不存在的IP的21端口都可以弹出黑色界面的原因,我暂时也没有弄清楚。可能是你们路由上的某种策略引起的,这仅仅是一种可能。三、“一个bug”是什么意思?
是电脑中未被发现的缺陷或问题。