我做了一个Windows Service,用来定时上传数据,它通过FTP协议上传数据到另一个FTP网站,这个网站的端口是2222。现在为了使用这个Service,这台服务器始终开放FTP协议和2222端口,我想能不能这样:平时FTP协议和2222端口是关闭的,我在Service中通过代码实现动态打开FTP协议和2222端口,上传完数据后再关闭FTP协议和2222端口,这样Server就安全多了!
    我现在的Service是用C#在VS2005中实现的,请问能否实现以上功能,能否提供有价值的连接,谢谢!!!

解决方案 »

  1.   

    你是实现PORT模式的FTP协议吧?也就是让FTP服务器主动打开你的2222端口,然后你把要上传的数据推给服务器。如果是这样的话,一般在执行PORT命令之前,以及传输完毕后,2222端口都应该关闭啊,这是你应该在Service内部实现的。
      

  2.   

    你是实现PORT模式的FTP协议吧?也就是让FTP服务器主动打开你的2222端口,然后你把要上传的数据推给服务器。不是,我本地的2222端口始终开着!
      

  3.   

    lz表达不清楚,经过猜测和推理,差不多理解你的意思。1。ftp服务器上可以安装防火墙,企业版的,带触发器的,比如Visnetic。或者使用防火墙提供的API来操作。或者设置端口允许访问的时间(比如定时同步时)。2。自己作一个FTP服务器,现成的代码很多。相当于CS程序。不过比较复杂。3。自己建一个过滤TDI或者NDSI,根据不同需求来控制。
      

  4.   

    听不明白到底是哪台传数据到哪台?A(Win Service) ---send data---> B  ?
      

  5.   

    本地的停止开启服务还会点,
    做这种传输都用WebService。
    ------------关注
      

  6.   

    WEBSERVICE不能远程开启另一端的端口了,如果可以的话你不就变成病毒了??
      

  7.   

    http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=0a7606f3-f8ec-4e39-8d0e-517248b7164c
    http://www.c-sharpcorner.com/UploadFile/psingh/FTPServerinCSharp11162005015958AM/FTPServerinCSharp.aspx
    http://csharp-source.net/open-source/network-servershttp://www.thescripts.com/forum/thread518234.html