2009-03-11 5 views
3

.NET CF 클라이언트 응용 프로그램을 개발하고 데이터 전송을 위해 웹 서비스를 사용하고 있습니다. SharpZipLib을 사용하여 전송 된 데이터 집합을 압축하므로 전송 된 바이트 배열의 크기를 알 수 있습니다..NET에서 웹 서비스 호출의 전송 된 데이터 크기 결정 CF

하나의 통화에 대해 요청 크기 (html 헤더, 비누 봉투 및 실제 데이터)를 완료하는 것이 쉬운 방법인지 궁금합니다. 정말 GPRS 연결 비용을 최소화하고 싶습니다.

감사합니다 ...

답변

1

전체 질문; 죄송합니다. 네트워크 추적 프로그램을 사용하는 데 익숙하지 않습니다 ...

그러나; 대역폭 제한 장치에서 데이터 집합과 SOAP이 항상 최상의 선택이 아니라고 겸허하게 제안 할 수 있습니까? 압축은 좋은 일을하지만 언제나 이상적인 것은 아닙니다. 제공되는 기능이 필요하지 않다면 간단한 프로토콜 (예 : POX, 내장 프로토콜 압축 (GZIP/Deflate) 사용)을 사용할 수 있습니다.

사물의 다른 끝에서 ... 메시지로 문언을 쓸 수 있다면 protobuf-net과 같은 시리얼 라이저가 유용 할 수 있습니다 (원시 이진 게시물과 결합). 그들은 매우 데이터 밀도가 높습니다 (압축을 사용하려는 시도는 필연적으로 크기를 증가시킵니다). 그러나 클라이언트에서 자체 데이터/변경 추적을 수행해야하며 RPC 스택은 아직 불완전합니다 (프로토 타입 코드가 작동하지만 아직 커밋하지 않았습니다. 단위 테스트). 서버는 또한 다를 수 있습니다 (예 : asmx가 아니거나 어쩌면 조작 된 핸들러 또는 MVC 컨트롤러 일 수도 있습니다).

또 다른 대안으로, ADO.NET Data Services는 특히 JSON 모드 (대역폭의 경우 프로토콜 압축 사용)에서 특히 중요 할 수 있습니다.

+0

맞습니다. 웹 서비스가 좋은 선택이 아니지만 모든 구조를 변경할 시간이 없다고 생각합니다. 나는 또한 서버 클라이언트 유형 통신을 지원하는 클라이언트 장치에서 db4o를 사용하지만 압축을 지원하는지 잘 모르겠습니다. – xarux

0

Wireshark은 유명한 프로토콜 분석기 도구입니다. 그러나 그것은 당신의 필요에 과잉이 될 수 있습니다.

체크 아웃 Fiddler도 있습니다. 이것은 더 쉽고 에뮬레이터의 트래픽을 모니터 할 수 있습니다.

tcpmon은 서버와 클라이언트 사이에 앉을 수있는 Java 유틸리티입니다. tcpmon에 연결하고 실제 웹 서비스에 대한 모든 요청을 프록시하도록 tcpmon을 구성하도록 응용 프로그램의 끝점을 편집해야합니다. 10 분 이상 걸리지 않아야합니다. 매우 간단한 유틸리티입니다. 그런 다음 tcpmon에서 원시 요청을 모니터하거나 Fiddler로 트래픽을 캡처 할 수 있습니다.

+0

필자는 이전에 Fiddler를 사용해 왔지만 Wireshark를 결코 시도하지 않았습니다. Activesync Fiddler를 통해 인터넷에 연결하는 WM Emulator에서 트래픽을 캡처하지 않습니다. 하지만이 두 가지를 상기시켜 주셔서 감사합니다. – xarux

0

WCF는 생성 된 SOAP + 메시지의 크기를 볼 수있는 메시지 추적을 지원합니다. 이 추적 파일을 사용하여 찾고자하는 것을 판별 할 수 있습니다. 통신에서의 압축으로 송신 된 바이트는 덜 분명하게 나타납니다. 와이어 크기에 대한 실제 wireshark는 좋은 선택이 될 것입니다. 또는 WCF 추적에서 가져온 메시지를 압축하여 대략적인 아이디어를 얻을 수 있습니다.