繁体   English   中英

Java:使用DataOutputStream向套接字写入会减慢然后停止

[英]Java: Writing to socket with DataOutputStream slows down, then stops

while (true) {
    loc = getLocationOnScreen();

    out.writeLong((long)loc.getX());
    out.writeLong((long)loc.getY());
    out.flush();

    i++;
    System.out.println(i);

}

这段代码会缓慢运行约3秒钟,然后变慢,然后停止。

i在大约16491处结束,永不继续增加。 这里发生了什么?

它之所以变慢是因为,在接收端,在读取下一个值之前,您可能会使用您发送的值来执行长任务。 因此,另一端读取数据的速率小于您向其发送数据的速率。 这将继续在另一侧填充接收缓冲区,并在发送方填充发送缓冲区。 最终,当两个缓冲区都完全装满时,数据传输将停止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM