(일부 하드웨어의) 3 소켓에 원격으로 연결하는 iOS 애플리케이션이 있습니다. 각 소켓에는 우선 순위가 있습니다. 하나의 채널은 iPad App & 하드웨어 간 전송, Tx/Rx 이미지 용 전송, Tx/Rx 비디오 용 메시지 전송에만 사용됩니다. 나는 모든 세 소켓을 구현했다. GCDAsyncSocket API & MSGSocket/ImageSocket (OR) MSGSocket/VideoSocket을 사용하는 동안 문제가 없지만 VideoSocket/ImageSocket/MSGSocket을 동시에 사용하면 약간의 문제가 발생한다. 데이터 패킷이 손실되었습니다. {실제로는 파일 덩어리가 누락됩니다 .-(} & API에서 버그가 발견되었습니다 : Unable to complete Read Stream 문제의 원인 일 수 있다고 생각했기 때문에 스레드로 전환되었습니다. &이 같은 NSThreads를 사용하여/CFSocket API를 구현했다. 나도 같은 dropbox-ed의 구현을 여기 NSThreads/CFSocket의 API &이다 사용 ImageSocket/VideoSocket 코드 만 구현을 변경iOS/iPad 애플리케이션의 TCP 통신에서 패킷 손실 디버그
. 나는에 관한 이해 단지 수 없어요 어디 iOS App 또는 서버 쪽에서 문제가 발생합니다. TCP 통신에서 패킷 손실이 없어야합니다.
이 문제를 디버그 할 수있는 방법이 있습니까? 또한 코드 &을 통해 갈 것을 요청합니다. 어떤 것이 잘못되면 알려주세요. (너무 많이 요청할 수 있지만 코드 구현에 대한 확신이 필요합니다.) 올바른지 알려주세요. 이 문제를 해결할 수있는 도움을 주시면 감사하겠습니다.
편집 1 :은 @JoeMcMahon 코멘트 후, 나는이 Technical Q&A & 언급은 TCP Dump - trace.pcap file을 얻었다. Wireshark &으로이 tcp 덤프를 열었습니다. 하드웨어 포트 & 사이에서 전송 된 바이트를 표시합니다. 패킷의 차이를 수신 & 패킷을 캡처 누군가가 지적 할 수
0 패킷이 커널
하락 필터에 의해받은
36,469 패킷을 캡처
12,463 패킷 : 또한 터미널에서 나는이 메시지를 본 TCP 덤프 캡처를 중지 할 때 필터로?
참고 - 연결된 TCP 덤프는 실패한 시나리오가 아닙니다.
EDIT 1.1는 here
나는 당신이 실제 트래픽이 무엇인지 알 수 있도록 Wiresharked했다고 가정하고있다. 만약 당신이 그것이 계몽 적이 지 않다면. –
귀하의 문제는 패킷 손실이 아닙니다. 모든 패킷을 전혀 알지 못하는 TCP 스트림 소켓으로 작업하고 있습니다. 운영 체제가이를 처리합니다. – Anton