导航:首页 > IDC知识 > 服务器不支持非ascii字符

服务器不支持非ascii字符

发布时间:2021-02-10 20:17:51

1、FTP:服务器不支持非 ASCII 字符

出现不支持ascii码的情况会出现中文乱码,这个是实际的字符故障,但实际应用中还存在内其他相关的原因:容

1、实际连接错误的原因是ftp主/被动模式选择错误,在ftp客户端调整站点连接设置为被动连接模式即可。

2、防火墙端口限制,关闭防火墙临时检查使用即可。

3、FTP软件使用的设置有问题,传输模式选择二进制尝试传输即可。

(1)服务器不支持非ascii字符扩展资料:

FTP的传输有两种方式:ASCII、二进制。

1、ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容。

2、二进制传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。

2、不安全的服务器,不支持 FTP over TLS。

建议的安全的方案vpn+ftp进行访问。

可能是由于防火墙限制了连接,或许您可以试一下将FTP的“传输设置”更改为“主动”试试。 

3、ftp连接不了空间服务器,怎么弄啊?

有一copy种可能性是,服务器本身的ftp服务器出现了问题。还有一种可能是你的账号和密码不正确,最好的方法就是,看一下服务器发送回来的错误提示。然后再网上查一下这个错误对应的原因,
针对具体原因再去解决就好了,希望可以帮到您。

4、服务器不支持ASCII字符怎么解决

?

5、语言乱码问题

汉字出现乱码有好几种情况,大致可分成四类:网页、文本、文档和文件乱码。第一类是由于港台的繁体中文大五码(BIG5)与大陆简体中文(GB2312)不通用造成的;第二类是Win9X/Win2K系统(菜单、桌面、提示框)显示乱码,这是Win9X/Win2K注册表中有关字体的部分设置不当引起的;第三类是各种应用程序(包括游戏)本来显示中文的地方出现乱码,形成原因比较复杂,有第二类的乱码原因,也可能是软件用到的中文动态链接库被英文动态链接库覆盖造成的;最后一类是邮件乱码。
由于楼主你没有说清楚具体是什么,所以只好写长一些了,呵呵,希望楼主有耐心看完:
(一)、网页、文本和文档文件乱码的消除
网页乱码是浏览器(如IE等)对HTML网页解释时形成的。如果在网页的代码中有形如:〈HTML〉〈HEAD〉〈META CONTENT=“text/html;charset=ISO-8859-1”〉〈/HEAD〉……〈/HTML〉的语句,浏览器在显示此页时,就会出现乱码。因为浏览器会将此页语种辨认为“欧洲语系”。解决的办法是将语种“ISO-8859-1”改为GB2312,如果是繁体网页则改为BIG5。
另一种解决办法是不修改网页代码,事先为浏览器安装多语言支持包(例如在安装IE时要安装多语言支持包),这样在浏览网页出现乱码时,就可以在浏览器中选择菜单栏下的“查看”/“编码”/“自动选择”/简体中文(GB2312),如为繁体中文则选择“查看”/“编码”/“自动选择”/繁体中文(BIG5),其它语言依此类推选择相应的语系,这样可消除网页乱码现象。
还有一种解决办法是利用多内码显示平台来转换内码。常用多内码显示平台有:“南极星”、“四通利方”、“MagicWin 98等等。
网页无乱码保存的方法是:用浏览器打开网页时,在“查看”/“编码”中选择“自动选择”,存盘时保存类型选“web页”,编码选择“UNICOD”,这样保存过的网页再次打开时,在浏览器菜单“查看”、“编码”中不管选择简体中文(GB2312)、简体中文(HZ)还是UNICODE(UTF-8)或繁体中文(BIG5),最终显示都不会出现乱码。
文本、文档文件乱码,一般是繁体中文显示在简体中文系统下或者相反情况造成的。只要把原本是繁体的内码转换为简体内码(或者相反),就可消除乱码。
Word能胜任这类工作,例如要把繁体中文转换为简体中文,方法是:选择要转换内码的文件,在弹出的对话框中,选择“其它编码”中的“繁体中文(BIG5)”一项,打开此文件时就不会出现乱码。无乱码保存方法:在保存时选择“文件”中的“另存为”,先存为“Word文档,存盘后打开再存为纯文本等其它格式;您也可以用Word的“中文简繁转换”工具实现无乱码保存,方法是在菜单栏中选择“工具/语言/中文简繁转换”,内码转换后再保存。
除此之外,消除这类乱码还可用内码转换工具,对BIG5(繁体中文)和GB2312(国标码、简体中文)进行相互转换来实现。常用的内码转换工具有:“飓风简繁通、“内码转换大师、“华语通、“两岸通汉字内码转换器等等
(二)、Win9X/Win2K系统乱码的消除
这类乱码是由于注册表中关于字体部分配置不正常造成的,即使您用内码翻译软件如四通利方、南极星、Magic Win98、两岸通等处理也不会消除。解决办法是:恢复注册表中关于字体部分设置。
如有一台Win9X/Win2K版本相同且显示正常的机器,则可依下列步骤进行恢复:
1.在正常机器上选择“开始”/“运行”,在对话框中键入“REGEDIT”,打开注册表编辑器;
2.光标定位到“HKEY_LOCAL_MACHINE\ SYSTEM\CURRENT CONTROL SET\CONTROL\ FONTASSOC”,选择“注册表/导出注册表文件”,再选择“分支”,导出该分支注册表信息到文件(如LI.REG)中;
3.把LI.REG文件Copy到显示乱码的机器上,在显示乱码机器上运行REGEDIT,选择“注册注册表”/“导入注册注册表”,把LI.REG文件导入注册表中。
如没有Win9X/Win2K版本相同且显示正常的机器,则需要您手工恢复字体部分注册表项,按以下步骤:
1.在乱码机器上打开“开始”——“运行”——REGEDIT,然后回车,打开注册表编辑器;
2.找到“HKEY_LOCAL_MACHINE\SYSTEM\ CURRENT CONTROL SET\CONTROL\FONTASSOC”,正常情况下,会有ASSOCIATED DEFAULTFONTS、ASSOCIATED CHARSET两个文件夹,其正确的内容为:
子目录内容
中文Win98
中文Win98(OEM版)
中文Win2K
AASOCIATED CHARSET
ANSI(00)=“yes”
GB2312(86)=“yes”
DEN(FF)=“yes”
SYMBOL(02)=“no”
ANSI(00)=“yes”
GB2312(86)=“yes”
OEM(FF)=“yes”
SYMBOL(02)=“no”
ANSI(00)=“yes”
OEM(FF)=“yes”
SYMBOL(02)=“no”
ASSOCIATED DEFAULT
FONTS
AssocSystemFont=“simsun.ttf”
FontPackageDecorative=“宋体”
FontPackageDontcare=“宋体”
FontPackageModern=“宋体”
FontPackageRoman=“宋体”
FontPackageScript=“宋体”
FontPackageSwiss=“宋体”
同左栏
AssocSystemFont=“simsun.ttf”
FontPackage=“新宋体”
FontPackageDecorative=“新宋体”
FontPackageDontcare=“新宋体”
FontPackageModern=“新宋体”
FontPackageRoman=“新宋体”
FontPackageScript=“新宋体”
FontPackageSwiss=“新宋体”
3.当出现汉字乱码时,上述两个文件夹中内容就会不完整,有的没有ASSOCIATED CHARSET文件夹或其中内容残缺不全;有的ASSOCIATED DEFAULTFONTS下内容残缺。只要用REGEDIT在“HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\ CONTROL\FONTASSOC”下,根据以上正确内容恢复即可。

(三)、应用程序(包括游戏)乱码的消除
中文软件菜单等显示界面上出现乱码,可能是由于Windows注册表中关于字体设置的信息不正确地改变而造成的,这时候可以用上述第2点介绍的办法去解决。
如果用上法解决不了,那就是因为软件的中文链接库被英文链接库覆盖而引起的,这种现象经常发生在用微软开发工具例如VB、VC开发的中文软件上,这类软件中,菜单等显示界面上的汉字都是受一个动态链接库(DLL文件)控制,而软件的这个动态链接库一般安装在Windows的System目录下,如果以后安装了某个英文软件也使用同名的动态链接库,则英文软件的动态链接库就会覆盖WINDOWS\SYSTEM下的中文软件的动态链接库,这样,运行中文软件时就会调用英文的动态链接库,因此出现乱码。解决办法是重新安装中文软件,恢复中文动态链接库即可。

(四)、邮件乱码的消除
1.邮件乱码原因及其排除
邮件乱码的形成原因很多,主要有以下几个方面:
(1)邮件服务器不支持8位(非ASCII码格式)
传输邮件传输机制或邮件编码的不同,可能造成邮件服务器不支持8位(非ASCII码格式)传输而形成邮件乱码。例如直接发送中文或二进制等非ASCII码格式的邮件(如中文双字节文件、图片文件.jpg、可执行文件.exe或压缩文件.zip等二进制文件)时,邮件服务器有可能无法处理,便把信件中每个字符的第8位都过滤掉,从而造成邮件信息的失真或损坏,在收到邮件时就是一堆乱码。
对策:在发送8位格式的文本文件时,必须事先进行编码,将文件转换为7位ASCII码或更少位数的格式,然后才能保证文件的正确传送。收件人收到7位或更少位格式的邮件后,可以再转换为8位的格式,这样就可避免乱码。
(2)收发端使用的E-mail软件和设置不同
一般E-mail软件的“附件”功能都可以自动对信件先进行编码,然后送出。这样只要收信人使用的E-mail软件(如Outlook、Netscape E-mail等)能区别信件的编码方式,就可以自动将信件解码。然而由于收发件人所用的E-mail软件默认配置不同或收发件人自己定制的一些选项不同,所以在收到编码的信件后,系统不一定能识别出信件所用的编码方法,自然无法自动解码,这样就会出现乱码。
对策:可以用Winzip+IE来解码,方法是:把乱码邮件的内容,拷贝到剪贴板中,然后将其粘贴到记事本中,存为文本文件(例如LI.txt),再将其后缀改为.uue(改为LI.uue),点击此文件,会启动Winzip,然后启动IE,把Winzip中的001.txt文件拖到IE窗口中,就会显示邮件原来的内容,而不会看到乱码。
也可以根据邮件中的关键字符判断编码方法,选取合适的解码软件进行解码。
邮件的编码方式主要有:UUENCODE、Base64 encode、QP-encode、BINHEX等。
UUENCODE:这是UNIX环境下使用的编码方式,目前已经很少用,大体格式为:
begin 644 kk.zip M1G)O;2!I;&EN+F)B3T!C(VEE+FYC='4N961U+G1W(%=E9"!.;W8@(#8@,3(ZM,SDZ,C4@,3DY-@I296-E:79E9#H@9G)O;2!F;&%B;6%I;"YF;&%B+F9U:FET……
end
特征:乱码前面含有“begin xxx”,后面是编码前的原始文件名(如kk.zip),接着是已经过编码的信件内容(如上述的乱码部分)最后一行为“end”。
解码办法:可用BECKY!EUDORA等E-mail软件,选择编码中相应的选项就可解码,也可以在E-mail软件中保存乱码邮件,存为后缀为“.UUE”格式的文件,然后用Winzip解码展开。解码后就会消除乱码。
MIME/BASE64 encode:该编码方式将3个字节(8位)用4个字节(6位)表示,由于编码后的内容是6位的,因此可避免第8位被截掉,大体格式为:
MIME-Version:1.0
Content-Type:text/plain; charset="us-ascii"
Content-Transfer-Encoding:base64
Status:R
+sXqsT6Skp OWrSKXzsN3DRLFNrmGhQQ0Kq1+sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
特征:乱码前一般有如下几部分“信头”:Content-Type(内容类型)、charset(字符集)和Content-Transfer-Encoding(内容传输乱码方式)。
解码办法:用E-mail软件,选择编码中Base64 选项就可解码,解码后会消除乱码。
QpencodeQP:全称“Quoted-Printable Content-Transfer-Encoding”。因为这种格式邮件的内容都是ASCII字符集中可以打印的字符,所以名称中含有Printable。大体格式为:
=A1A=B1z=A6n=A1I=A7=DA=A6b=BA=F4=B8=F4=A4W
=B1o......
=E5==ABH=A5=F3=B0=DD=C3D=B1M=Aea=A1A......
特征:内容通常有很多等号“=”,因此不需要看“信头”也可以判断是否为QP编码。
解码办法:把邮件中类似A1A=B1z=A6n...的部分编码全部复制下来,贴到一个新的纯文本文件中,然后在文件头部加入Quoted-Pintable格式的文件头:
Contenet-Type:text/plain;Charset="GB2312"
Content-Transfer-Encoding;Quoted-Pintable
然后以“EML”为后缀保存文件,用资源管理器双击打开文件即可显示正确的内容。如果还有部分汉字乱码,可以用Winzip对存盘后的EML文件进行解压,即可看到正确的内容。
BINHEX:这种编码方式大体格式为:
(This file must be converted with Binhex4.0)
ssTqq6vdCx<BR>
oz6XOIE……
解码办法:用E-mail软件对它解码;也可在E-mail软件中保存乱码邮件,存为后缀为“.HQX”格式的文件,然后用Winzip解码展开。
解码后会消除乱码。
UTIF-7/UTIF-8:它们是UNICODE的两种转换码。
UTIF-7编码方式大体格式为:
+SGmhQbF/6pm6hSafapmK69L/j0pFexb6q+sXqsT6Skp. OWrSKXzsN3DRLFNrmGhQQ0Kq1-sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
解码办法:在原E-mail头加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-7"
Content-Transfer-Encoding:7bit
插入后与字符留一空行,将邮件存为“EML”后缀,然后用Outlook即可解码,消除乱码。
UTIF-8
解码办法:在原E-mail头加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-8"
Content-Transfer-Encoding:8bit
将邮件存为“EML”后缀,然后用Outlook即可解码,消除乱码。
(3)操作系统语种不同
对于中文电子邮件,如果收信方所用的操作系统是英文环境而且没有外挂中文系统或未切换为中文(如四通利方或南极星等)编码方式,也会无法看到中文只见乱码。所有的双字节字符(如中文简/繁体的GB和BIG5码及日文的JIS、EUC和朝鲜文的 KSC码等)在非本语种操作系统下都会出现乱码。同样在中文简体的GB码环境下看其它双字节字符时也只能看到乱码。
对策:安装多语言支持包或使用多内码显示平台(如四通利方或南极星等),对收到的邮件,根据其使用的语种切换到相应的编码方式即可消除乱码。
2.为了避免别人收到乱码,发信方应注意:
(1) E-mail软件中的正确设置
使用英文E-mail软件应设置成:
文字设定Default CHARSET:ISO 8859-1
(Latin1)
编码方式Encoding:Quoted-Printable,不可选择7位(因为7位不支持中文)
字码页Code Page(可选):936或HZ-GB-2312,
以支持整字识别邮件格式:MIME
字体:宋体
中文E-mail软件应设置成:
文字设定Default CHARSET:简体中文GB2312
编码方式Encoding:Quoted-Printable邮件格式:MIME
字体:宋体
Outlook Express中应把“简体中文(GB2312)作为默认的邮件使用语言,选择“国际设置”/为接收的所有邮件使用默认的编码。
(2)发送前将邮件按7位格式重新编码
在发送8位格式的文本文件时,必须事先进行编码,将文件转换为7位ASCII码或更少位数的格式,然后才能保证文件的正确传送。收件人收到7位或更少位格式的邮件之后,可以再转换为8位的格式,这样就可以阅读了。
在邮件客户端软件中的书写(撰写)选项中,设定默认自动为7位编码。
(3)转换成合适的内码
在E-mail软件的书写(撰写)选项中,设定默认自动为7位编码。对用汉字系统编辑的中文邮件在发送前,最好在固定的签字栏中注明自己所使用的汉字码标准(如:GB2312、中文HZ、GBK);港澳台及东南亚地区邮件作者在使用BIG5码撰写完邮件、向内地发送前要转换成上述三种简体国标码中的一种形式并在签字栏中注明。如不转换则可能无法阅读,因为国内用户使用的邮件系统有很多不支持BIG5码。
(4)发送重要信息时先发测试信
发送重要信息时,为了确认是否无须编码即可发送正文,应该先发送测试信。而且还应确定收件人能否对附件文件进行解码。如果发送已经编码的邮件,则最好添加足够的“信头”信息,以便收件人知道所需的解码方法。建议对UUENCODE/UUDeview编码方式用UUENCODING作信头,对Mpack编码方式用Base64 encoding作信头。
(5)尽量利用“附件”功能发送文件
几乎所有的邮件软件,如Netscape、The Bat!、 Becky! 等邮件系统附加这类非标准 ASCII码格式的文件时,附加文件通常可以自动进行“Base64”方式编码(仅对附件部分进行编码)。在用“附件”方式发送邮件之前,无需进行编码;否则适得其反。因为邮件软件能够自动成功解码这类“附加”文件,因此在发送中文类邮件时应该首选这种方法。
如果无法以附件方式发送文件,则必须在正文中发送中文或二进制文件如果发/收件人之间远隔万里,则传送过程中,第八位将可能被截掉。这时最好先在正文中用中文给收件人发一封测试信,并了解对方能否正确收到邮件正文。如果第八位被截掉,则收件人将会看到一些乱码,而不是上述的uu/b64/Qp等格式,而且这种信件几乎不可恢复。
对策:在Netscape、Eudora或Pegasus Mail等你所使用的邮件系统中,选择其首选项或选项配置中的“Quoted Printalbe”或“MIME encoding”。
(6)选择优秀的客户端邮件软件
选择优秀E-mail收发软件可有效解决邮件乱码。
3.为排除乱码,收信方应注意:
查找邮件:签字栏或正文中有无指明本邮件所使用汉字标准码类别的英文字符;在“查看(V)”下拉菜单中选中“语言”,随后出现的菜单中会包括本系统所能支持的全部汉字标准,在其中单击邮件中所指明的一种。如果收到的邮件中没有指明其所使用的汉字标准,则只可按顺序单击,直到邮件正文显示正确为止(数个汉字标准中必有一个前面有“.”标记,此即您编辑器所用的汉字标准)。若使用的是Netscape,可在Option菜单的Document Encode中选择相应的项目。
4.在非中文平台上中文邮件不出现乱码方法
当对方没有中文平台而打开您发的中文邮件时,就会出现乱码。解决办法有两种:
(1)用E-mail AID之类的工具
UCWIN GOLD 1.0附带的工具E-mail AID可把文本文件转换为AID格式文件,大小只比原TXT文件增加几K。写好中文邮件后,用文本格式存盘,然后用E-mail AID以AID格式保存,最后把此文件连同E-mail AID一起作为附件插在信中。对方收到信后,只需运行E-mail AID打开AID格式文件即可看到汉字,不管对方在何语言平台下,都不会出现乱码。
(2)把中文邮件以图形格式保存
用画笔等绘图软件书写中文邮件,在图片中输入文字,用默认的BMP格式保存,将属性置为黑白模式(以减少BMP图片体积),然后用Winzip把它压缩成ZIP格式,作为附件在邮件中发送,这样不管对方在何语言平台下,都不会出现乱码。这种方法的缺点是生成的BMP中文邮件体积太大。

6、关于远程登陆的问题

Telnet是进行远程登录的标准协议和主要方式它为用户提供了在本地计算机上完成远程主机工作的能力。通过使用Telnet,Internet用户可以与全世界许多信息中心图书馆及其它信息资源联系。Telnet远程登录的使用主要有两种情况。第一种是用户在远程主祝上有自己的帐号(Account),即用户拥有注册的用户名和口令;第二种是许多Internet主机为用户提供了某种形式的公共Telnet信息资源,这种资源对于每一个Telnet用户都是开放的。Telnet是使用最为简单的Internet工具之一。

telnet /?

命令可以缩写。支持的命令为:

c- 关闭 关闭当前连接
d- 显示 显示操作参数
o- 打开主机名 [端口]连接到一个主机名(默认端口 23)
q- 退出 退出 telnet
set- 设置 设置选项(要列表,请键入 \'set ?\')
sen- 发送 将字符串送到服务器
st - 状态 打印状态信息
u- 解除设置 解除设置选项(要列表,请键入 \'unset ?\')
?/h- 帮助 打印帮助信息

一 摘要
二 远程登录
三 Telnet协议
四 Win2000的Telnet服务
五 在telnet中该做什么

一 摘要
Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢?

二 远程登录

Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来认识一下远程登录。

1 远程登陆的基本概念

先来看看什么叫登录:分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为\'登录\'。
远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。

2 远程登陆的产生及发展

我们可以先构想一个提供远程文字编辑的服务,这个服务的实现需要一个接受编辑文件请求和数据的服务器以及一个发送此请求的客户机。客户机将建立一个从本地机到服务器的TCP连接,当然这需要服务器的应答,然后向服务器发送键入的信息(文件编辑信息),并读取从服务器返回的输出。以上便是一个标准而普通的客户机/服务器模型的服务。
似乎有了客户机/服务器模型的服务,一切远程问题都可以解决了。然而实际并非你想象的那样简单,如果我们仅需要远程编辑文件,那么刚才所构想的服务完全可以胜任,但假如我们的要求并不是这么简单,我们还想实现远程用户管理,远程数据录入,远程系统维护,想实现一切可以在远程主机上实现的操作,那么我们将需要大量专用的服务器程序并为每一个可计算服务都使用一个服务器进程,随之而来的问题是:远程机器会很快对服务器进程应接不暇,并淹没在进程的海洋里(我们在这里排除最专业化的远程机器)。
那么有没有办法解决呢?当然有,我们可以用远程登录来解决这一切。我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作一样。这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用地服务器程序。
问题发展到这里好像前途一片光明了,用远程登录总应该解决问题了吧,但要实现远程登陆并不简单。不考虑网络设计的计算机系统期望用户只从直接相连的键盘和显示器上登录,在这种机器上增加远程登陆功能需要修改机器的操作系统,这是极其艰巨也是我们尽量避免的。因此我们应该集中力量构造远程登陆服务器软件,虽然这样也是比较困难的。为什么说这样做也比较困难呢?
举个例子来说:一般,操作系统会为一些特殊按键分配特殊的含义,比如本地系统将\'Ctrl+C\'解释为:\'终止当前运行的命令进程\'。但假设我们已经运行了远程登陆服务器软件,\'Ctrl+C\'也有可能无法被传送到远地机器,如果客户机真的将\'Ctrl+C\'传到了远地机器,那么\'Ctrl+C\'这个命令有可能不能终止本地的进程,也就是说在这里很可能会产生混乱。而且这仅仅是遇到的难题之一。
但尽管有技术上的困难,系统编程人员还是设法构造了能够应用于大多数操作系统的远程登陆服务器软件,并构造了充当客户机的应用软件。通常,客户机软件取消了除一个键以外的所有键的本地解释,并将这些本地解释相应的转换成远地解释,这就使得客户机软件与远地机器的交互,就如同坐在远程主机面前一样,从而避免了上述所提到的混乱。而那个唯一例外的键,可以使用户回到本地环境。
将远程登陆服务器设计为应用级软件,还有另一个要求,那就是需要操作系统提供对伪终端(pseudo terminal)的支持。我们用伪终端描述操作系统的入口点,它允许像Telnet服务器一样的程序向操作系统传送字符,并且使得字符像是来自本地键盘一样。只有使用这样的操作系统,才能将远程登陆服务器设计为应用级软件(比如Telnet服务器软件),否则,本地操作系统和远地系统传送将不能识别从对方传送过来的信息(因为它们仅能识别从本地键盘所键入的信息),远程登陆将宣告失败。
将远程登陆服务器设计为应用级软件虽然有其显著的优点:比将代码嵌入操作系统更易修改和控制服务器。但其也有效率不高的缺点(后面的内容将会给予解释),好在用户键入信息的速率不高,这种设计还是可以接受的。

3 远程登录的工作过程

使用Telnet协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的Ip地址或域名;必须知道登录标识与口令。
Telnet远程登录服务分为以下4个过程:
1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据报;
3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。

上面的内容只是讨论了远程登陆最基本的东西,其中的复杂和编程人员的艰辛是我们难以想象的,不知道你在舒服的使用Telnet的同时,是否想到了这些!

三 Telnet协议

我们知道Telnet服务器软件是我们最常用的远程登录服务器软件,是一种典型的客户机/服务器模型的服务,它应用Telnet协议来工作。那么,什么是Telnet协议?它都具备哪些特点呢?

1 基本内容

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:
1)Telnet定义一个网络虚拟终端为远的系统提供一个标准接口。客户机程序不必详细了解远的系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。

2 适应异构

为了使多个操作系统间的Telnet交互操作成为可能,就必须详细了解异构计算机和操作系统。比如,一些操作系统需要每行文本用ASCII回车控制符(CR)结束,另一些系统则需要使用ASCII换行符(LF),还有一些系统需要用两个字符的序列回车-换行(CR-LF);再比如,大多数操作系统为用户提供了一个中断程序运行的快捷键,但这个快捷键在各个系统中有可能不同(一些系统使用CTRL+C,而另一些系统使用ESCAPE)。如果不考虑系统间的异构性,那么在本地发出的字符或命令,传送到远地并被远地系统解释后很可能会不准确或者出现错误。因此,Telnet协议必须解决这个问题。
为了适应异构环境,Telnet协议定义了数据和命令在Internet上的传输方式,此定义被称作网络虚拟终端NVT(Net Virtual Terminal)。它的应用过程如下:
对于发送的数据:客户机软件把来自用户终端的按键和命令序列转换为NVT格式,并发送到服务器,服务器软件将收到的数据和命令,从NVT格式转换为远地系统需要的格式;
对于返回的数据:远地服务器将数据从远地机器的格式转换为NVT格式,而本地客户机将将接收到的NVT格式数据再转换为本地的格式。
对于NVT格式的详细定义,有兴趣的朋友可以去查找相关资料。

3 传送远地命令

我们知道绝大多数操作系统都提供各种快捷键来实现相应的控制命令,当用户在本地终端键入这些快捷键的时候,本地系统将执行相应的控制命令,而不把这些快捷键作为输入。那么对于Telnet来说,它是用什么来实现控制命令的远地传送呢?
Telnet同样使用NVT来定义如何从客户机将控制功能传送到服务器。我们知道USASCII字符集包括95个可打印字符和33个控制码。当用户从本地键入普通字符时,NVT将按照其原始含义传送;当用户键入快捷键(组合键)时,NVT将把它转化为特殊的ASCII字符在网络上传送,并在其到达远地机器后转化为相应的控制命令。将正常ASCII字符集与控制命令区分主要有两个原因:
1)这种区分意味着Telnet具有更大的灵活性:它可在客户机与服务器间传送所有可能的ASCII字符以及所有控制功能;
2)这种区分使得客户机可以无二义性的指定信令,而不会产生控制功能与普通字符的混乱。
参考资料:www..baidu.com

与服务器不支持非ascii字符相关的知识