簡體   English   中英

如何讓Java多條消息一起發送?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM