GameKit으로 놀았으므로 지금은 정말 어려운 문제에 직면하고 있습니다.iPhone SDK : GameKit 및 대용량 파일 + 연결이 끊어졌습니다.
저는 블루투스의 더 큰 파일 (1-2MB)을 보낼 것입니다. 나는 이미 패킷 (약 8kB)을 준비했다.
iPhone - sending header: file divided into 25 parts
iPod - received header: OK I got it waiting for 25 parts
iPhone - sending part #1
iPod - received part #1 send next
iPhone - sending part #2
iPod - received part #2 send next
...
iPhone - sending part #24
iPod - received part #24 send next
iPhone - sending part #25
iPod receiving part #25 processing file
내가 사용하여 파일 부품 및 메시지 (배달 확인)을 모두 보내 : 다음 방식에 설명 된대로
내 응용 프로그램은 작동
[mSession sendData:data toPeers:mPeers withDataMode:GKSendDataReliable error:nil];
및 수신 데이터 :
- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context
블루투스 전송 중 발생할 수있는 몇 가지 문제를 어떻게 처리하는지 알고 싶습니다. 엔. GKSessionDelegate는 데이터가 전달되었는지 여부에 관계없이 정보를 제공하지 않습니다.
90 %의 경우 전송이 정상적으로 작동하지만 갑자기 중지되어 앱을 다시 연결하거나 다시 시작하지 않고 계속 진행되지 않는 경우가 있습니다. 보낸 사람이 파일 일부의 성공적인 배달의 확인을받은 경우
-(void)sendAgain {
[self sendData:bufor];
}
-(void)sendData:(NSData *)data {
bufor = [data retain];
timeoutTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(sendAgain) userInfo:nil repeats:NO];
[mSession sendData:data toPeers:mPeers withDataMode:GKSendDataReliable error:nil];
}
timeOutTimer가 무효화 :
는 내가 1 초 내에 응답을하지 않을 경우 데이터를 다시 설정하기 쉬운 솔루션을 발명했습니다. 그러나 실제로이 솔루션을 구현할 때 더 많은 문제점이 있습니다.장치가 책상 옆에 서로 있습니다.
기기간에 '배달되지 않은'데이터 문제는 어떻게 처리합니까? 그것은 단지 도구 일 뿐이지 만 게임을 개발하는 과정에서 어떻게 짜증이 났을까요?
덧붙여 말하면, 짧은 채팅 메시지를 보내면 아무런 문제가 발생하지 않으며 동일한 방법을 사용하고 있습니다.
실제로 연결이 끊어지는 경우는 거의 없으며 단지 데이터가 무선으로 손실되는 것을 좋아합니다. 저는 이미 데이터의 크기가 약 8kb가되도록 부품을 나누었습니다. 실제로 이미지 전송이 실제로 느리게 이루어집니다.
나는 문서가 1000 바이트 한계를 제안하고 또 다른 지점에서 95k를 언급하지만 이것이 하드 한계 또는 무엇인지 명확하지 않다는 것을 알았습니다. –