我遇到了一些麻煩,從插座解析TCP包...解析TCP包
在我的方案,我的消息是這樣的:
「A''B」 'C''D''E' ......... 0x2300
'A''B''C''D''E' - >開始消息圖案
0x2300 - >兩個字節結束消息
但由於Nagle's algorithm,有時我的郵件被連接如下:
'A''B''C''D''E'......... 0x2300'A''B' 'C''D''E'......... 0x2300'A''B''C''D''E'......... 0x2300
我已經試圖setNoDelay()
爲true,但問題仍然存在。
我有消息在一個字節[]。
我該如何拆分我的消息才能單獨解析?
PS:現在我能夠得到的第一個消息,但其他人都失去了......
你的意思是把兩個消息放在一個字節數組中? –
TCP是一個流,也無法保證讀取將給予相同長度的數據寫入數據,這是不是一個錯誤,你不能把它關掉。 –
沒有TCP數據包這樣的東西。您正在解析在上次讀取中到達的流的不可預知且不可控制的位。這不是一回事,因爲沒有這種東西。 – EJP