1
我有一個接收1024個字符或更少數據包中的信息的套接字。在那些數據包中,我有一些消息或其中的一部每條消息以2個字符結尾。消息重組/插座通信
當兩個包中存在郵件碎片時,會出現此問題。你推薦什麼算法來處理這種碎片? (我不想在這裏重新發明輪子,因爲我認爲這是一個無處不在的問題)。
實施例:
| 011 012 013 014 \ r \ r 021 022 023 | 024 \ r \ r 031 032 033 | 034 \ r \ r 041 042 043 044 \ r \ r |
| ... | - >包
XXX XXX ... \ r \ r - >消息
感謝,它的工作原理(有一些小的修改)。你能評論一下你的方法嗎(這是一種標準的做事方式,是否有任何未能處理的情況會導致這種情況發生,等等)?我認識到第一部分是處理類文件對象的標準方式。 – citn 2011-04-29 07:43:20
「標準方式」,我真的不知道這一點,但這是我如何在很長一段時間內在Python和C做的:)(使用memmem或自定義算法來重建和分割)。 – tito 2011-04-29 07:46:22
但主要思想保持不變:讀取數據並將其附加到臨時緩衝區,並使用該緩衝區來發現和處理消息。所有未處理的數據保留在緩衝區中。 – tito 2011-04-29 07:48:07