[英]How to make Java send multiple messages together?
這是我的代碼的摘錄:
OutputStream out = this.socket.getOutputStream();
out.write(fourBytes);
out.write(someBytes);
out.flush();
這在 2 個包中發送,即使第一個包只有 4 個字節長。 除了將字節 arrays 連接在一起發送它們之外,還有其他方法嗎?
我已經嘗試過setTcpNoDelay(false)
。
當然。 使用BufferedOutputStream
。 :-P
setTcpNoDelay
改變操作系統發送數據包的方式,而不是 Java 發送數據包的方式。 改變后者的唯一方法是緩沖你的 output,正如我上面建議的那樣。
順便說一句,這不會影響您的數據真正分成多少個數據包。 同樣,這取決於操作系統,以及接收端指定的 window。 因此,您不能使用數據包來分隔數據。
用緩沖的 output stream 包裹它
我認為禁用 Nagle 是由setTcpNoDelay(true)
完成的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.