Socketdatainputstream read.read(Unknown Source) 为什么么啊 ?

ftp4j提示java.net.SocketException: Connection reset的解决系统的自动更新FTP服务器,其他计算机连接都没有问题,包括xp、server2008、win7、win8,简体和繁体。今天发现一台简体win7无法自动更新,提示错误如下:java.net.SocketException: Connection reset&&&&&&& at java.net.SocketInputStream.read(Unknown Source)&&&&&&& at java.net.SocketInputStream.read(Unknown Source)&&&&&&& at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)&&&&&&& at sun.nio.cs.StreamDecoder.implRead(Unknown Source)&&&&&&& at sun.nio.cs.StreamDecoder.read(Unknown Source)&&&&&&& at sun.nio.cs.StreamDecoder.read0(Unknown Source)&&&&&&& at sun.nio.cs.StreamDecoder.read(Unknown Source)&&&&&&& at java.io.InputStreamReader.read(Unknown Source)&&&&&&& at it.sauronsoftware.ftp4j.NVTASCIIReader.readLine(NVTASCIIReader.java:105)&&&&&&& at it.sauronsoftware.ftp4j.FTPCommunicationChannel.read(FTPCommunicationChannel.java:142)&&&&&&& at it.sauronsoftware.ftp4j.FTPCommunicationChannel.readFTPReply(FTPCommunicationChannel.java:185)&&&&&&& at it.sauronsoftware.ftp4j.FTPClient.openPassiveDataTransferChannel(FTPClient.java:3179)&&&&&&& at it.sauronsoftware.ftp4j.FTPClient.openDataTransferChannel(FTPClient.java:3113)&&&&&&& at it.sauronsoftware.ftp4j.FTPClient.list(FTPClient.java:2019)&&&&&&& at it.sauronsoftware.ftp4j.FTPClient.list(FTPClient.java:2193)&&&&&&& at cn.stjauns.logan.updater.Updater.getRemotefiles(Updater.java:199)&&&&&&& at cn.stjauns.logan.updater.Updater.doUpdate(Updater.java:58)&&&&&&& at cn.stjauns.logan.updater.Starter.main(Starter.java:18)关闭win7自带防火墙,一切正常。上百度查询,无果。上google查询,答案见:/questions//ftp-error-while-downloading-uploading-with-ftp4j-library-in-java-application。
Apparently there is a bug on the Windows 7 firewall related to using FTP on IPv6 that would explain your problem. See bug report here.Any one of the following workarounds should suffice to fix it:Run the following as an administrator in a Windows console:netsh advfirewall set global StatefulFtp disableRun the JVM with the option: -Djava.net.preferIPv4Stack=true
打开win7防火墙,以管理员身份运行cmd,运行如下命令:netsh advfirewall set global StatefulFtp disable问题解决。
阅读(...) 评论()wander_bird 的BLOG
用户名:wander_bird
文章数:26
访问量:5964
注册日期:
阅读量:5863
阅读量:12276
阅读量:379045
阅读量:1071539
51CTO推荐博文
issue:I have slow internet connection and I cannot install any plugin, because Eclipse's Update manager throws me exception:ava.net.SocketTimeoutException: Read timed outat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.read(Unknown Source)at java.io.BufferedInputStream.read1(Unknown Source)at java.io.BufferedInputStream.read(Unknown Source)at mons.httpclient.ContentLengthInputStream.read(ContentLengthInputStream.java:170)at java.io.FilterInputStream.read(Unknown Source)at mons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:108)at java.io.FilterInputStream.read(Unknown Source)at mons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:127)at ...solution 1:I got the error a lot with version 3.6, but adding the following line to the eclipse.ini helped me a lot://-Dsun.net.client.defaultConnectTimeout=10000-Dsun.net.client.defaultReadTimeout=30000Add it right after the line with -vmargssolution 2:you can set the timeout options in the eclipse.ini, here's the.'use -DpropName=propValue as a VM argument to the Java VM, set the desired property in the config.ini file in the appropriate configuration area'I set the following to get round my timeout issue:-Dorg.eclipse.ecf.provider.filetransfer.retrieve.closeTimeout=3000-Dorg.eclipse.ecf.provider.filetransfer.retrieve.readTimeout=3000refer to 本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)Connection reset 连接被重置的解决方法 - 推酷
Connection reset 连接被重置的解决方法
流式java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedW
import java.io.OutputS
import java.io.OutputStreamW
import java.net.S
public class SocketDemo {
//private static String text=&您好&;
public static void main(String[] args) {
//Connection reset 连接被重置
//创建套接字的连接对象
Socket socket = new Socket(&127.0.0.1&,9090);
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bdw = new BufferedWriter(osw);
String text=&您好&;
bdw.write(text, 0, text.length());
bdw.flush();
}catch(Exception e){
e.printStackTrace();
服务器代码;
package 通信软件服务器;
import java.io.BufferedR
import java.io.InputS
import java.io.InputStreamR
import java.net.ServerS
import java.net.S
public class Demo {
public static void main(String[] args) {
ServerSocket server = new ServerSocket(9090);
System.out.println(&等待客户端连接&);
Socket socket = server.accept();
System.out.println(socket.getRemoteSocketAddress() + &连接上服务器&);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader bis = new BufferedReader(isr);
String line = bis.readLine();
System.out.println(&line:& + line);
} catch (Exception e) {
e.printStackTrace();
客户端连接服务器会出现以下结果;
等待客户端连接
/127.0.0.1:53373连接上服务器
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at 通信软件服务器.Demo.main(Demo.java:24)
客户端在连接到服务器之后就已经被虚拟机回收了
1,在客户端中关闭流
客户端在连接到服务器之后,流必须发送字符串之后才能被关闭和回收
bdw.close();
2,在发送的字符串穿件分割符;
在发送字符串的时候添加分隔符,告诉服务器一行的结束位置; &\r\n是换行符
String text=&您好\r\n&;
修改后的代码;
package 通信软件服务器;
import java.io.BufferedR
import java.io.InputS
import java.io.InputStreamR
import java.net.ServerS
import java.net.S
public class Demo {
public static void main(String[] args) {
ServerSocket server = new ServerSocket(9090);
System.out.println(&等待客户端连接&);
Socket socket = server.accept();
System.out.println(socket.getRemoteSocketAddress() + &连接上服务器&);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader bis = new BufferedReader(isr);
int a=bis.read();
System.out.println(a);
//readLine()必须要有结束的标志\r\n
String line = bis.readLine();
System.out.println(&line:& + line);
} catch (Exception e) {
e.printStackTrace();
package 通信软件服务器;
import java.io.BufferedW
import java.io.OutputS
import java.io.OutputStreamW
import java.net.S
public class SocketDemo {
//private static String text=&您好&;
public static void main(String[] args) {
//Connection reset 连接被重置
//创建套接字的连接对象
Socket socket = new Socket(&127.0.0.1&,9090);
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bdw = new BufferedWriter(osw);
String text=&您好\n\r&;
bdw.write(text, 0, text.length());
bdw.flush();
bdw.close();
}catch(Exception e){
e.printStackTrace();
等待客户端连接
/127.0.0.1:53633连接上服务器
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 socketinputstream 的文章

 

随机推荐