啟用了一個(gè)監(jiān)聽(tīng)來(lái)等待數(shù)據(jù)(同步或異步隨意),當(dāng)遠(yuǎn)程有一消息到達(dá),我們將獲取此消息進(jìn)行處理,此時(shí)如果這是一個(gè)耗時(shí)很長(zhǎng)的過(guò)程,長(zhǎng)到遠(yuǎn)程又有多條消息到達(dá)則到達(dá)的消息會(huì)累積,而當(dāng)你處理完之前的消息后再次獲取消息則將一次性獲得所有累積的消息(分包重組),當(dāng)然這種重組是區(qū)分IP的,即不同地址過(guò)來(lái)的消息累積會(huì)分開(kāi)進(jìn)行重組為一條消息……此情況在同步或異步情況均會(huì)產(chǎn)生,而在同步情況產(chǎn)生的更明顯。對(duì)于這個(gè)問(wèn)題,我目前的解決方式是只能通過(guò)利用正則去分析消息拆解后進(jìn)行循環(huán)處理,因?yàn)橥ǔ?shí)際應(yīng)用中我們的消息都是有一定的格式規(guī)范的,比如消息頭有若干個(gè)1,消息尾有若干個(gè)2等。那么各位高手在實(shí)際開(kāi)發(fā)中有沒(méi)有遇到這種情況?又是如何去處理這種并發(fā)底層協(xié)議分包重組問(wèn)題的呢?
Socket消息并發(fā)問(wèn)題
慕蓋茨4494581
2018-11-07 08:05:14