我正在C#上编写自己的FTP服务器。到目前为止一切都很好。 现在,正如FTP所需,它使用秒通道进行数据连接。在那里它发送文件列表,发送一个/多个文件,它接受文件。 由于文件列表正常工作,我现在遇到下载文件的问题。 几个FTP客户端只接收并保存一些字节。当我得到一个存储Loggings的文件时,它只会获取第一行的第一个字符。因此,原始数据根本不起作用。 P.S。:在 RETR 文件之前,客户端要求 SIZE ,服务器应答。
我可以使用数据连接发送文件。
public void SendFile(String strFilename) {
if(!m_bConnected)
Console.WriteLine("Waiting for connection on DataConnection");
while(!m_bConnected) {
Thread.Sleep(100);
} // while end
byte[] btFileContent = File.ReadAllBytes(strFilename);
int iContentLen = btFileContent.Length;
sw.Write(btFileContent, 0, iContentLen);
sw.Close();
}
我做了一些网络研究。这与BINARY / ASCII模式有关吗?在将文件发送到FTP客户端时,是否还需要查看其他一些规则?你对如何解决这个问题有所了解吗?
现在谢谢你,
DeZio