iPhone 용 Voip 앱을 구현하고 싶습니다.iOS에서 피어 투 피어 연결을 만드는 방법은 무엇입니까?
스트리밍으로 소켓 프로그래밍을 사용하는 사용자간에 피어 투 피어 연결을 만들 수 있습니까?
모든 소스 코드를 사용할 수 있습니다.
iPhone 용 Voip 앱을 구현하고 싶습니다.iOS에서 피어 투 피어 연결을 만드는 방법은 무엇입니까?
스트리밍으로 소켓 프로그래밍을 사용하는 사용자간에 피어 투 피어 연결을 만들 수 있습니까?
모든 소스 코드를 사용할 수 있습니다.
수 없습니다. 기기의 IP 변경 (둘 다 다른 네트워크로 이동)이 발생하면 어떻게 될까요?
은 클래스 속성 정의이 시도 할 수 있습니다 : 당신의 스트림을 초기화
NSInputStream *inputStream;
NSOutputStream *outputStream;
을
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)kScannerIP, kScannerPort, &readStream, &writeStream);
inputStream = (__bridge NSInputStream *)readStream;
outputStream = (__bridge NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent {
switch (streamEvent) {
case NSStreamEventOpenCompleted:
break;
case NSStreamEventHasBytesAvailable:
break;
case NSStreamEventHasSpaceAvailable:
break;
case NSStreamEventErrorOccurred:
break;
case NSStreamEventEndEncountered:
break;
default:
NSLog(@"Unknown event");
}
}
네트워크 마지막으로 닫기 :들어오는 데이터를 처리하기 위해 대리자 메서드를 구현
[inputStream close];
[outputStream close];
[inputStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
inputStream = nil;
outputStream = nil;
@ 접근 방식은 호스트와 포트로 연결해야합니다. 내 질문은 "다른 아이폰에서 내 응용 프로그램을 사용하여 특정 사용자에게 연결하는 방법"입니다. 해당 사용자에 대해 호스트 및 포트를 얻는 방법을 의미합니까? –
사용자와 그의 IP를 아는 자신의 서버를 통해. 이 경우 사용자가 호스트가됩니다. 사용자와 ips를 추적해야합니다. 또는 정적 ips로 그 작업을 원하십니까? 그게 불가능하다고 생각해. – thorb65
을 할 수 있습니다 중앙 서버 물론 –
하지만, 다음, 그것은 두 개의 서버 피어 - 투 - 피어의 아니에요과 - 클라이언트 연결. –
서버가 사용자 주소를 보내고 나서 피어 투 피어 –