2010-05-29 4 views
0

UDP Adobe Air를 사용하여 대용량 파일을 CPP로 보내려고합니다. 대용량 파일을 전송하는 동안 일부 패킷이 누락되었습니다. 누락 된 패킷 데이터를 검색하려면 어떻게합니까? 나는 TCP (tcp)를 사용하여 서버 (cpp)와 클라이언트 (공기)를 연결하는 것부터 시작했다. 연결 설정 후 파일 전송을 시작합니다. 나는 tcp를 사용하여 데이터가 누락 된 파일을 얻고 tcp를 사용하여 누락 된 패킷을 재전송 할 계획입니다. 아무도 내가 전송하는 동안 누락 된 패킷을 어떻게 알 수 있는지 말해 줄 수 있습니다. 고맙습니다.UDP Flex에서 패킷 누락을 방지하려면 어떻게해야합니까?

답변

1

무슨 일이 일어나는지 분명히 말씀해 주시겠습니까? UDP를 통해 파일을 보내고 있지만 TCP를 사용하여 서버에 연결한다고하면 두 프로토콜은 단일 연결에서 상호 배타적입니다.

UDP는 패킷 손실을 감지하는 메커니즘을 제공하지 않으므로 (기본적으로 TCP가 사용됩니다) UDP는 패킷이 손실되었는지 여부를 알아낼 수 없습니다. 패킷 보내기/재전송을 관리 할 때 TCP를 사용해야합니다. 에어 ServerSocket 문서 (http://help.adobe.com/en_US/air/reference/html/flash/net/ServerSocket.html)에 명시된 바와 같이

은 :

모든 패킷 [TCP를 통해 전송 (이유 이내) 도착 보장 - 손실 된 패킷을 재전송한다. 일반적으로 TCP 프로토콜은 UDP 프로토콜보다 사용 가능한 네트워크 대역폭을 효율적으로 관리합니다. 소켓 통신이 필요한 대부분의 AIR 응용 프로그램은 DatagramSocket 클래스 [UDP] 대신 ServerSocket 및 Socket 클래스 [TCP]를 사용해야합니다.

는 공기 네트워킹 클래스에 대한 자세한 내용은이 페이지를 참조하십시오 : 패킷이 분실 때 재전송을 수행하기 때문에
http://help.adobe.com/en_US/air/html/dev/WSb2ba3b1aad8a27b0-181c51321220efd9d1c-8000.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7cfb

+0

이것은. UDP는 스트리밍 비디오와 같은 것들로, 드롭 된 패킷을 재전송하고 싶지는 않습니다. – fenomas

+0

안녕하세요. Sly Cardinal, 답장을 보내 주셔서 감사합니다. 미안 해요, 제 질문은 명확하지 않았습니다. 내 클라이언트 끝은 공기 응용 프로그램이고 서버는 cpp입니다. TCP를 사용하는 서버에 클라이언트를 연결하고 연결 여부를 확인한 후 ... UDP를 사용하여 다시 연결하고 UDP를 사용하여 파일을 전송 중입니다. 지금은 큰 파일의 시간에 나는 서버 측에서 패킷을 잃어 가고있다. 이제 나는 누락 패킷 목록을 얻고 싶어하고 클라이언트에게 tcp를 사용하여 누락 된 패킷을 다시 보내달라고 요청하고 싶습니다. 그런 다음 내 Air 앱은 UDP를 사용하여 누락 된 패킷을 다시 보냅니다. –

+0

즉, 연결 확인 및 패킷 누락 데이터의 경우 TCP를 사용하고 UDP를 사용하여 파일을 전송하려고합니다. 모든 것이 잘되고 있습니다. 패킷 손실을 제외하고. 이제 누락 된 패킷 목록을 알고 다시 보내려고합니다. 누락 된 패킷 데이터를 얻으려면 어떻게해야합니까? –

0

내 생각 엔, TCP가 느립니다. 그래서 그것이 아마 더 느린 이유 일 것입니다. 그러나 다른 한편으로, 패킷 손실 얻을 검사에도

이 내가 TCP 대신 UDP

갈 것

처럼 교활한 말한다 는, UDP가 잘못된 도구를 보인다 이상 ... 걸릴 것 UDP에 의해 그들을 다시 보내 여기에서 사용

관련 문제