Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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_Sockets_Networking - Fatal编程技术网

通过java套接字进行的小文件传输,流内接收器似乎永远无法获得它

通过java套接字进行的小文件传输,流内接收器似乎永远无法获得它,java,sockets,networking,Java,Sockets,Networking,假设我们使用规范的inputstream读取方法: while ((bytesRead = bis.read(buffer)) > -1) { bos.write(buffer, 0, bytesRead) System.out.println(bytesRead); bos.flush(); } 对于发送方和接收方,都要执行此任务。我让发送者显示一个已完成发送的状态,但接收者保持被阻止,直到发送者开始发送其他内容,然后被填充,然后退出循环,才读取任何内容。这

假设我们使用规范的inputstream读取方法:

 while ((bytesRead = bis.read(buffer)) > -1) {
    bos.write(buffer, 0, bytesRead)
    System.out.println(bytesRead);
    bos.flush();
 }

对于发送方和接收方,都要执行此任务。我让发送者显示一个已完成发送的状态,但接收者保持被阻止,直到发送者开始发送其他内容,然后被填充,然后退出循环,才读取任何内容。这里的拼图可能缺少什么。谢谢

您是否为发件人调用了
Socket.shutdownOutput()
?如果没有,则接收器可能会等待到超时,等待进一步的传入字节。否。Socket.shutdownOutput()仅仅是关闭最后一个传输操作还是关闭整个套接字?后者不是一个解决方案,因为我需要套接字连接。它将关闭套接字的整个扩展。如果您愿意,您不能将套接字重新用于此后的写入,而只能用于读取答案。如果您正在恢复senders套接字,您应该考虑将其更改为每次传输一个连接。为什么?为什么发送过来的sentinel eof-1或文件大小信息不起作用呢?我以前从未在我的客户端/服务器应用程序中调用过shutdown(),所以我认为它不是。为了让我们能够给你们提供一个有根据的解决方案,你们省略了这篇文章中的许多信息,所以这里主要是关于盲目猜测:1)你们是在同一个套接字上写和读吗?[我看到了]2)你的接收器/读取器代码在哪里?