2012-09-10 265 views
0

可能重複:
TCP Client Side IssueTCP客戶端服務器問題

我有使用C#TCP客戶端和服務器應用程序帶來了很大麻煩。一切正常......但在某些情況下,當TCP服務器向TCP客戶端發送同時響應時,客戶端可以認爲服務器發送的兩條消息實際上都是單個消息。我不知道爲什麼會發生這種情況...如果有人知道請幫助我。我的TCP客戶端和服務器是用c#編寫的。

回答

0

這是TCP的正常行爲。它保證你的順序(如果服務器發送A,那麼B,客戶端永遠不會收到B,然後A),但它對你的「消息」一無所知。

要在客戶端將數據分解爲消息,需要通過TCP協議實現一些應用程序協議。例如,HTTP使用CRLFCRLF來確定HTTP消息的結束。
根據您的需要,您可以使用現有的或自己製作的。

0

不保證TCP連接的一端的Write的調用和另一端的Read的調用之間的1-1對應關係。您可能收不到數據,部分消息,全部消息或針對每個呼叫的多個消息Read

您需要執行任何適當的工作以將這些數據塊轉換回消息或切換到更高層次的技術(如WCF),如果你想要別的事情來做這些努力的話。