问题1:C#写的一个ftp客户端,一段日志如下:命令:> SIZE ttpsetup.exe
状态:> 接收到:213 2087443
状态:> 文件大小为:2087443
状态:> 起始位置为:1460
命令:> REST 1460
状态:> 接收到:350 Restarting at 1460.
命令:> PASV
状态:> 接收到:227 Entering Passive Mode (192,168,1,96,4,243).
命令:> TYPE I
状态:> 接收到:200 Type set to I.
命令:> RETR ttpsetup.exe
状态:> 接收到:125 Data connection already open; Transfer starting.
状态:> 正在下载 . . .
状态:> 下载512BYTE
状态:> 下载512BYTE
状态:> 下载436BYTE
状态:> 共下载:2920BYTE
状态:> 接收到:426 Connection closed; transfer aborted.我用了一个521字节的buffer来接收服务端传来的数据。从上面可以看到,只接收了2个512字节和一个436字节,服务端就把连接关了。我用的是本机作服务器IIS自带的ftp服务器,win2000系统,防火墙已关闭。问题是:为什么服务端把连接关了?或怎么才能完整地接收完数据?问题2:怎么解析各种ftp服务器LIST命令返回的文件列表?IIS自带的ftp服务器可返回两种格式的文件列表:dos格式和unix格式。Server-u呢?其他的ftp服务器呢?怎样自动识别服务器返回的格式并进行相应的解析?这两个问题把我折磨得不行了,望各位牛人让我解脱一下。可能因为我理解问题不到位,上面的问题描述不清楚的请您告知。
这篇文章我看过了,但与我的问题联系不大。请你再找一下关于我这种问题的资料吧。我找了很久了没找到。
这是两种格式的服务器日志,您帮忙看看有啥问题不?
我咋看不出来呀?IIS格式的:
192.168.1.96, anonymous, 2006-5-25, 13:25:33, MSFTPSVC1, SOLI, 192.168.1.96, 0, 0, 0, 331, 0, [31]USER, anonymous, -,
192.168.1.96, anonymous, 2006-5-25, 13:25:46, MSFTPSVC1, SOLI, 192.168.1.96, 0, 0, 0, 331, 0, [32]USER, anonymous, -,W3C格式的:
#Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2006-05-25 05:17:53
#Fields: time c-ip cs-username s-sitename s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken cs-version cs-host cs(User-Agent) cs(Cookie) cs(Referer)
05:17:53 192.168.1.96 anonymous MSFTPSVC1 SOLI 192.168.1.96 21 [25]USER anonymous - 331 0 0 0 15 FTP - - - -
05:19:39 192.168.1.96 anonymous MSFTPSVC1 SOLI 192.168.1.96 21 [26]USER anonymous - 331 0 0 0 0 FTP - - - -
05:19:52 192.168.1.96 anonymous MSFTPSVC1 SOLI 192.168.1.96 21 [27]USER anonymous - 331 0 0 0 0 FTP - - - -
05:20:05 192.168.1.96 anonymous MSFTPSVC1 SOLI 192.168.1.96 21 [28]USER anonymous - 331 0 0 0 0 FTP - - - -