1
정보가 1024 자 이하의 패킷으로 수신되는 소켓이 있습니다. 그 패킷들에서 나는 어떤 메시지들 또는 그 부분들. 각 메시지는 2 자로 끝납니다.메시지 리 어셈블리/소켓 통신
두 패키지에 메시지가 조각화되어있는 경우 문제가 발생합니다. 이 단편화를 처리하기 위해 어떤 알고리즘을 권장합니까? (나는 이것이 보편적 인 문제라고 생각하기 때문에 휠을 재발 명하려는 것은 아니다.)
예 :
| 011 012 013 014 \ 연구 \ r에 021 022 023 | 024 \ r \ r 031 032 033 | 034 \ r \ r 041 042 043 044 \ r \ r |
| ... | -> 패킷
XXX XXX ... \ 연구 \ r에 -> 메시지
덕분에, 그것은 (일부 작은 수정에) 작동합니다. 당신은 당신의 접근 방식에 대해 논평 할 수 있습니까? (이것은 일을 수행하는 표준 방식입니까, 이것을 처리 할 수없는 어떤 조건이 있습니까?)? 첫 번째 부분을 파일과 유사한 객체를 처리하는 표준 방법으로 생각합니다. – citn
"표준 방법", 나는 그것에 대해 실제로 말할 수는 없지만, 이것은 파이썬과 C 언어로 오랫동안하고있다. (memmem 또는 custom algo를 사용하여 재구성 및 분할). – tito
하지만 주요 아이디어는 동일하게 유지됩니다. 임시 버퍼에 데이터를 읽고 추가하고 해당 버퍼를 사용하여 메시지를 발견하고 처리합니다. 모든 처리되지 않은 데이터는 버퍼에 남아 있습니다. – tito