ASCII 和BINARY模式

本文介绍了FTP传输中的ASCII与二进制模式的区别及应用。ASCII模式适用于文本文件,而二进制模式则用于非文本文件如程序、压缩文件等,确保文件在不同系统间正确传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、ASCII传输方式
假定我们正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是也有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理。
2、二进制传输模式
在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。
  如果在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)
3、ASCII 和BINARY模式区别:
  用HTML 和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。
  BINARY模式用来传送可执行文件,压缩文件,和图片文件。如果我们用ASCII模式传,会显示一堆乱码,你必须重新用BINARY模式传。
  在此次FTP服务器上,使用了FTP的主动模式和被动模式,以及ascii和binary两种传输模式,具体代码编写如下:
   private void InitDataSession(User user)
{
TcpClient client = null;
if (user.isPassive==true)
{
AddInfo(“采用被动模式返回LIST目录和文件列表”);
client = user.dataListener.AcceptTcpClient();
}
else
{
AddInfo(“采用主动模式向用户发送LIST目录和文件列表”);
client = new TcpClient();
client.Connect(user.remoteEndPoint);
}

        user.dataSession = new UserSeesion(client);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值