2010-07-30 37 views

回答

2

你不能。 TCP的本質是數據被分解成數據包。保持接收數據,直到你收到完整的消息(不管是什麼)。這方面的一些選項:

  • 首先在消息本身之前發送消息的大小。
  • 關閉連接時,已發送郵件(這樣基本上可以閱讀客戶端,直到連接被關閉)
  • 添加一個分隔符,用於指示消息的結尾

我一般不喜歡最後一個選項,因爲它意味着在閱讀時「理解」該消息,這可能會非常棘手 - 並且可能意味着如果您的分隔符自然發生在消息中,則需要添加轉義序列等。

+0

感謝您的提前,但正如我所知道的Tcp/IP協議做這項工作。 爲什麼我必須這樣做?爲什麼我必須在應用程序級別上關心它? – Noro 2010-07-30 08:19:05

+0

@Noro:因爲TCP/IP只是爲您提供了一個有效的數據流。應用協議決定如何處理該流 - 如何將其分爲消息等。 – 2010-07-30 08:57:54

相關問題