2013-08-22 4 views
0

나는 프로세스 간 통신에 사용하는 사용자 지정 프로토콜이 있습니다. 대략 있습니다. 400-500 개의 메시지가 모두 사용자 정의 페이로드로 전달됩니다. 메시지에는 모두 고유 한 메시지 ID (단어)가 있지만 그게 전부입니다. c struct는 각 메시지를 정의합니다.큰 바이트 배열을 텍스트로 디코딩

거의 모든 메시지에는 구조체의 하나 이상의 필드에 대한 사용자 지정 열거 형이 있습니다.

이러한 메시지가 수천 개있는 메시지 로그가 표시되며 비교적 빠르게 실행되고 유지 관리가 어려울 수있는 디코더를 작성하고 싶습니다.

사용자 정의 응용 프로그램을 작성하고 디코드 구조를 ms 액세스 db 또는 다른 것으로 저장하는 방법을 살펴 보았습니다. 이것은 매우 느리고 동시 디코드 수에 의해 제한되었습니다. 나는 또한 xml을 보았지만, 다시 작은 테스트에서 느린 번역을했다.

나는 wireshark disector와 같은 것을 사용하고 싶지만 이것들은 네트워크 패킷이 아닙니다 ... 그냥 큰 바이트 배열입니다.

모든 의견/권장 사항은 매우 높이 평가됩니다.

답변

0

통계를 찾는 것이 더 빠른 방법은 숫자 통계를 IPC 계층 자체에 추가하는 것일 수 있습니다. 따라서 발신자가 유형 X의 IPC 패킷을 보내면 수신 측에 대해 카운터 stats_sent_X와 유사한 서적을 늘립니다.

반면에 로그의 내용을 살펴 보려면 로그 파일을 읽고 토큰으로 분할하고 IPC 열거 형 값과 관련된 토큰을 식별하는 것이 더 간단합니다 그것을 읽으십시오.

+0

답장을 보내 주셔서 감사합니다. 그러나 요약 통계를 얻으려고하지 않습니다. 메시지의 페이로드를 디코드하려고하지만 가능한 한 효율적이고 신속하게이 작업을 수행하려고합니다. 문자열 쌍에 일치하는 값을 토큰 화하고 조회하는 것은 다소 느리고 너무 많은 메시지에서 유지 관리 문제가됩니다. 그래서 xml 번역본이나 그와 비슷한 것을 살펴 보았습니다. 지금까지 운이 없다! – user2705726