0
當我們向客戶端發送大量數據時,它的ReceiveAsync事件不止一次被調用,並且每次我們得到一些數據包。
我們應該如何通過一個事件來獲取C#Silverlight Tcp數據包? 預先感謝您。我們應該怎麼做才能讓C#Silverlight Tcp Packet成爲一個整體?
當我們向客戶端發送大量數據時,它的ReceiveAsync事件不止一次被調用,並且每次我們得到一些數據包。
我們應該如何通過一個事件來獲取C#Silverlight Tcp數據包? 預先感謝您。我們應該怎麼做才能讓C#Silverlight Tcp Packet成爲一個整體?
你不能。 TCP的本質是數據被分解成數據包。保持接收數據,直到你收到完整的消息(不管是什麼)。這方面的一些選項:
我一般不喜歡最後一個選項,因爲它意味着在閱讀時「理解」該消息,這可能會非常棘手 - 並且可能意味着如果您的分隔符自然發生在消息中,則需要添加轉義序列等。
感謝您的提前,但正如我所知道的Tcp/IP協議做這項工作。 爲什麼我必須這樣做?爲什麼我必須在應用程序級別上關心它? – Noro 2010-07-30 08:19:05
@Noro:因爲TCP/IP只是爲您提供了一個有效的數據流。應用協議決定如何處理該流 - 如何將其分爲消息等。 – 2010-07-30 08:57:54