2014-01-06 45 views
0

我使用線程和tcp協議從客戶端發送簡單的聊天消息到服務器。但是當我使用wireshark查看數據包的詳細信息時,我看到我的數據被分成了例如..我的MSS = 1460,如果我發送780字節的數據..1幾個字節進入第一段,其餘的第二..進入數據包的字節數是隨機的。我應該怎麼做才能利用我的網絡的全部容量?起初我以爲自從我使用DataInputStream/OpStream以來,我得到了這個,但是當我將其更改爲bufferedreader時,問題依然如此。 請幫助!使用java的套接字編程

+0

@jkbkot UDP與這個問題完全沒有關係。它特別關於TCP。 – EJP

+0

你確定嗎?碎片在TCP下處理。 TCP提供了連續數據流,您不必處理數據包,這在我鏈接的問題(以及其他許多問題)中得到了回答。使用UDP,您還將收到完整的數據包,而不是片段。你可能根本沒有收到它。 –

回答

-1

使用BufferedOutputStreamBufferedWriter發送,並且只在需要時刷新,例如,讀之前。

+0

我用printwriter在服務器上打印消息。 – user3164695

+0

你曾經'在服務器上打印消息'是完全無關緊要的。我告訴你想要在發送時使用*請在您評論之前閱讀我實際寫的內容。 – EJP