想自己做一个FTP服务器,虽然网上有很多代码,但是很多都是一些类的代码,我也看不太懂,貌似他们都实现了文件上传、文件下载等等。
我就想实现下面这些基本功能,不知道需不需要实现他们的文件上传等等功能才能成功启动FTP。看了网上的代码,好像都没怎么讲到开启FTP的,很可能是我比较菜没有看到,请各位告诉我怎么开启FTP服务的?最重要的是可以设置自己的端口,因为我默认的21端口被占用了,还有那个请求的信息我也不知道怎么来的,希望不吝赐教哈。

解决方案 »

  1.   


     private void Upload(string filename) 
      { 
       FileInfo fileInf = new FileInfo(filename); 
       string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name; 
       FtpWebRequest reqFTP; 
       
       // 根据uri创建FtpWebRequest对象 
       reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name)); 
       
       // ftp用户名和密码 
       reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 
       
       // 默认为true,连接不会被关闭 
       // 在一个命令之后被执行 
       reqFTP.KeepAlive = false; 
       
       // 指定执行什么命令 
       reqFTP.Method = WebRequestMethods.Ftp.UploadFile; 
       
       // 指定数据传输类型 
       reqFTP.UseBinary = true; 
       
       // 上传文件时通知服务器文件的大小 
       reqFTP.ContentLength = fileInf.Length; 
       
       // 缓冲大小设置为2kb 
       int buffLength = 2048; 
       
       byte[] buff = new byte[buffLength]; 
       int contentLen; 
       
       // 打开一个文件流 (System.IO.FileStream) 去读上传的文件 
       FileStream fs = fileInf.OpenRead(); 
       try 
       { 
       // 把上传的文件写入流 
       Stream strm = reqFTP.GetRequestStream(); 
       
       // 每次读文件流的2kb 
       contentLen = fs.Read(buff, 0, buffLength); 
       
       // 流内容没有结束 
       while (contentLen != 0) 
       { 
       // 把内容从file stream 写入 upload stream 
       strm.Write(buff, 0, contentLen); 
       
       contentLen = fs.Read(buff, 0, buffLength); 
       } 
       
       // 关闭两个流 
       strm.Close(); 
       fs.Close(); 
       } 
       catch (Exception ex) 
       { 
       MessageBox.Show(ex.Message, "Upload Error"); 
       } 
      } 
      

  2.   

    这个问题很难一两句回答你。
    系统学习下,搞清楚2个问题:
    tcp/ftp协议是怎么回事。
    C#语言、类库,如何编译和运行代码。
      

  3.   

    如果你什么都不知道,给你代码你一样看不懂。
    如果你有点基础,手上的代码就足够了。ftp的代码很多的。
      

  4.   

    安装好ftp 服务器后,在默认ftp站点上右键点击新建一个ftp 站点ip
    网站主目录指你想发布文件的位置
    server U
      

  5.   


    http://www.google.com.hk/search?hl=zh-CN&source=hp&q=ftp%E6%9C%8D%E5%8A%A1%E5%99%A8+c%23&aq=f&aqi=&aql=&oq=&gs_rfai=
      

  6.   

    我也是前些天刚接触,Windows 有FTP的API可以调用,无论打开关闭,上传下载。你要填参数FTP地址,用户名、密码、端口.
      

  7.   

    要自己写FTP服务器必须深入理解TCP/IP及FTP协议,熟悉Socket编程...没有基础怎么说你都看不懂...
      

  8.   

    没有,别说C#,任何语言的代码都不可能会有,这是收费的部分,不会免费提供。不过可以自己写,只不过你必须明白Socket的原理(也就是一应一答模式),遵循FTP协议,一个请求,一个答复,这样就可以设计FTP服务器了,不过你这又是何苦呢?有现成的FTP服务器软件可用,自己再写一个服务端软件难道有他们的好吗?