簡體   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