win7程序开发时连ftp时出错

一直以为是自己的机器不好,然后,就没有再解决的心情了。

今天帮另一朋友装了机器,新系统,新开发环境,新ftp,同样的代码,连接起来没什么问题,感觉很爽。但为什么我的一直有问题呢,然后想想自己装系统又遥遥无期,于是就想把这个问题解决一下,一定有症结所在。果然,今天一试,连接本地的ftp也会报同样的错误,这就让我相信不是网络的问题,应该是本机上的某个软件的问题,但第一次解决的时候已经将防火墙都禁用过了,好像也没什么效果。但今天还是再试一次,禁用所有防火墙,结果竟然可以了。于是苦苦找防火墙哪条规则跟我的ftp访问冲突了,结果没人能回答

java.net.SocketException: Software caused connection abort: recv failed

果然最后解决我问题的还是stackoverflow,竟然是win7防火墙的一个BUG http://stackoverflow.com/questions/10166337/ftp-error-while-downloading-uploading-with-ftp4j-library-in-java-application

执行下列两项操作的任一一项就可以了:

  • 以管理员身份在cmd下运行如下命令:netsh advfirewall set global StatefulFtp disable
  • 以如下参数运行JVM : -Djava.net.preferIPv4Stack=true

发表评论

您的电子邮箱地址不会被公开。