一直正常的程序没改动过.今天公司网络做了新的策略,结果出现了如下怪现象:
部分源代码如下:
try{
aftp =new FtpClient(hostIP);
aftp.login("usr","pwd");
aftp.binary();//这里执行完后就报connection reset了!
}catch (IOException e1){
e1.printStackTrace();
return iRet=1;
}
try{
BufferedOutputStream outdt = new BufferedOutputStream(aftp.put(term+ d +".enc"));
File outfile = new File(szMxFile+".enc");
BufferedInputStream indt = new BufferedInputStream(new FileInputStream(outfile));
final int CHUNK = 1024 * 1024;
byte[] buffer = new byte[CHUNK];
int read = 0;
while ( (read = indt.read(buffer)) != -1) {
outdt.write(buffer, 0, read);
}
indt.close();
outdt.close();
aftp.closeServer();
}
catch(IOException e){
//iRet=3; //文件上传失败
strMsg="[05]文件上传失败![L]";
e.printStackTrace(); ;
return iRet=1;
}
java程序访问serverU(这些都没变动过,一直都正常),ftp.login(user,pwd)后,报错如下:
2007-12-24 12:12:00 java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.TransferProtocolClient.readServerResponse(Unknown Source)
at sun.net.ftp.FtpClient.readReply(Unknown Source)
at sun.net.ftp.FtpClient.issueCommand(Unknown Source)
at sun.net.ftp.FtpClient.openDataConnection(Unknown Source)
at sun.net.ftp.FtpClient.put(Unknown Source)
at BankApi.JtTcp.jtCheck(JtTcp.java:474)
at CallJtTcpTest.main(CallJtTcpTest.java:287)
奇怪的是,我手工用ftp命令,在同样的机器(IP)上,用同样的用户名能正常登陆并上传和下载文件().而用以上程序,就直接报错!
请高手帮忙,现在压力颇大.请问是否我上面的程序兼容性有问题?如能提供其他方式实现FTP上传和下载功能的代码,在下感激不尽!!
谢谢!!!
部分源代码如下:
try{
aftp =new FtpClient(hostIP);
aftp.login("usr","pwd");
aftp.binary();//这里执行完后就报connection reset了!
}catch (IOException e1){
e1.printStackTrace();
return iRet=1;
}
try{
BufferedOutputStream outdt = new BufferedOutputStream(aftp.put(term+ d +".enc"));
File outfile = new File(szMxFile+".enc");
BufferedInputStream indt = new BufferedInputStream(new FileInputStream(outfile));
final int CHUNK = 1024 * 1024;
byte[] buffer = new byte[CHUNK];
int read = 0;
while ( (read = indt.read(buffer)) != -1) {
outdt.write(buffer, 0, read);
}
indt.close();
outdt.close();
aftp.closeServer();
}
catch(IOException e){
//iRet=3; //文件上传失败
strMsg="[05]文件上传失败![L]";
e.printStackTrace(); ;
return iRet=1;
}
java程序访问serverU(这些都没变动过,一直都正常),ftp.login(user,pwd)后,报错如下:
2007-12-24 12:12:00 java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.TransferProtocolClient.readServerResponse(Unknown Source)
at sun.net.ftp.FtpClient.readReply(Unknown Source)
at sun.net.ftp.FtpClient.issueCommand(Unknown Source)
at sun.net.ftp.FtpClient.openDataConnection(Unknown Source)
at sun.net.ftp.FtpClient.put(Unknown Source)
at BankApi.JtTcp.jtCheck(JtTcp.java:474)
at CallJtTcpTest.main(CallJtTcpTest.java:287)
奇怪的是,我手工用ftp命令,在同样的机器(IP)上,用同样的用户名能正常登陆并上传和下载文件().而用以上程序,就直接报错!
请高手帮忙,现在压力颇大.请问是否我上面的程序兼容性有问题?如能提供其他方式实现FTP上传和下载功能的代码,在下感激不尽!!
谢谢!!!
服务器serverU也没有更换过..请大家帮帮我啊.已经18个小时没合眼了 ...
运行cmd,再执行netsh advfirewall set global StatefulFTP disable看看。