Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中下载文件时出错-java.net.SocketException:连接重置_Java_Sockets - Fatal编程技术网

在java中下载文件时出错-java.net.SocketException:连接重置

在java中下载文件时出错-java.net.SocketException:连接重置,java,sockets,Java,Sockets,我正在尝试用java中的socket和server下载一个文件 myClient = new Socket(address,port); myClient.setSoTimeout(MyFileManager.TIME_OUT); in = new DataInputStream(myClient.getInputStream()); out = new DataOutputStream(myClient.getOutputStream()); File requestedFi

我正在尝试用java中的socket和server下载一个文件

myClient = new Socket(address,port);
   myClient.setSoTimeout(MyFileManager.TIME_OUT);
   in = new DataInputStream(myClient.getInputStream());
   out = new DataOutputStream(myClient.getOutputStream());
File requestedFile = new File(_fileManager.getDir()+fileName); //creating the new file
 //         requestedFile.createNewFile(); //now it does
          fos = new FileOutputStream(requestedFile);
          long size = in.readLong(); //get the size
          for (int i=1; i<=size; i++) {
           try {
            fos.write(in.read());
           }
           catch (IOException e) {
            e.printStackTrace();
           }
          }
myClient=新套接字(地址、端口);
myClient.setSoTimeout(MyFileManager.timeout);
in=新的DataInputStream(myClient.getInputStream());
out=newdataoutputstream(myClient.getOutputStream());
File requestedFile=新文件(_fileManager.getDir()+文件名)//创建新文件
//requestedFile.createNewFile()//现在是了
fos=新文件输出流(请求文件);
长尺寸=in.readLong()//知道尺寸了吗

对于(inti=1;i我认为循环应该是这样的:

 for (int i=0; i<size; i++)...

for(int i=0;i为什么您认为此行返回流中的字节数

long size = in.readLong(); //get the size

您应该在.read()中执行
,直到它返回-1。

请使用格式化您的代码。我想知道您在哪里找到了
DataInputStream.read(void)
方法。