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中为BufferedReader设置动态buffersize?_Java_Sockets_Streaming_Size_Buffer - Fatal编程技术网

如何在Java中为BufferedReader设置动态buffersize?

如何在Java中为BufferedReader设置动态buffersize?,java,sockets,streaming,size,buffer,Java,Sockets,Streaming,Size,Buffer,我正在测试从客户端到服务器的数据流。它生成随机的双精度和整数并发送到服务器;服务器必须读取它们,直到用户停止为止 但它似乎总是在服务器读取了2426个数据后停止 客户: while ((fromServer = in.readLine()) != null) { ... else { while(!bStop) {

我正在测试从客户端到服务器的数据流。它生成随机的双精度和整数并发送到服务器;服务器必须读取它们,直到用户停止为止

但它似乎总是在服务器读取了2426个数据后停止

客户:

    while ((fromServer = in.readLine()) != null) 
    {

        ...                     
        else 
        {
          while(!bStop)
          {
                ins++;
                dUserInput = rRandom.nextDouble();
                out.println(ins +", " + dUserInput);   
          }
           .....   
         }
服务器:

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()), buffersize); 

while ((inputLine = in.readLine()) != null) {
   ...
 System.out.println("recv> " + inputLine);
}
输出:

....
recv> 2421, 0.791175426456302
recv> 2422, 0.1424806550326747
recv> 2423, 0.32742036805153263
recv> 2424, 0.07852028188946414
recv> 2425, 0.8438837153559341
recv> 2426, 0.8548109748012377
我从BufferedReader中删除了'buffersize',即使客户端的布尔值'bStops'仍然为false,它也会在2426数据处停止。我想知道是否存在缓冲区大小问题

如果客户机在第2426个数据点停止后断开连接,则服务器输出将在第2426个数据点之后显示大量数据和错误消息。其中之一是关于缓冲区大小

有什么想法吗?我必须使用DataInputStream而不是BufferedReader吗


谢谢,

为了让回答者更容易,请填写粘贴代码中缺少的部分,以便它可以实际编译。这并不意味着要粘贴原始代码;把简单的东西放在那里。换句话说,不要给那些想要帮助的人带来不必要的负担。另外,既然你已经知道DataInputStream,你试过了吗?您还应该在客户端使用DataOutputStream。我使用BufferedReader和管道而不是套接字,计数上升到186086,没有任何问题。你犯了什么错误?粘贴缓冲区大小错误及其上面的所有内容。我使用tcp套接字进行了另一次尝试,使用和不使用buffersize参数。请发布导致问题的客户端和服务器的可运行代码。还要提到您的平台和java版本。客户端和服务器在同一子网上吗?如果没有,有多少啤酒花?使用跟踪路由。ping是否经常丢弃数据包?尝试在同一台计算机上运行客户端和服务器。感谢您的输入。我要试试烟斗。