iOS GameKit을 사용하여 서버 응용 프로그램을 구현하는 가장 좋은 방법은 무엇입니까? 어떻게 든 위임 된 모든 이벤트 (데이터 수신 등)에 응답하는 별도의 서버 스레드를 만들어야합니까? NSRunLoops를 사용 하시겠습니까?iPhone GameKit 비동기 서버 패턴
답변
필요한 경우가 아니면 스레드를 사용하지 마십시오.
거의 모든 것이 기본적으로 주 스레드의 실행 루프를 사용합니다. 다른 스레드를 사용하지 않고 다른 실행 루프를 (쉽게) 사용할 수 없습니다. — 각 스레드는 최대 하나의 실행 루프를가집니다.
는 (엄밀히 말하면, 대부분의 일들이 일반적으로 메인 스레드가 될 것입니다 현재 실행중인 스레드의 실행 루프 "현재"실행 루프를 사용합니다.)
과거에는 대부분의 PC 게임을 다른 스레드에서 네트워킹 코드를 실행하지 않았습니다. 느린 그래픽 카드로 인해 네트워킹 코드의 성능이 저하되었습니다. 요즘 FPS는 기본적으로 별도의 스레드에서 네트워크 코드를 실행하거나 그렇게 할 수있는 옵션이 있습니다 (Quake 3는 "순수 서버"모드를 가짐). 이렇게하면 게임 물리학이 호스트의 렌더링 성능과 분리되어 일반적으로 좋은 결과를 얻게됩니다.
는 (어떻게 든, 텍스처의 원인 아무것도/등 다시로드 퀘이크 3는 여전히 서버 스레드를 지연.) 별도의 스레드에서 서버를 실행하기 위하여려고하는 경우에, 나는 현지와 통신 제안
" 클라이언트 "를 통해"네트워크 ". 어쨌든 어떤 종류의 네트워크 코드를 작성해야하므로 socketpair(AF_UNIX, SOCK_DGRAM, 0, &sockets)
과 같은 것을 사용하십시오 (작동하지 않으면 AF_INET을 시도하고 UDP 소켓처럼 처리하십시오).
GameKit을 사용하여 Bluetooth를 통해 통신 할 필요가 없습니다. Bonjour 서비스 (NSNetService 참조)를 게시하면 GameKit에 사용되는 것과 동일한 Bluetooth PAN을 통해 자동으로 보급됩니다 (GameKit은 Bluetooth를 통해 Bonjour를 통해 실행됩니다). Bonjour와 UDP 만 사용한다면 Bluetooth를 통해 GameKit을 사용하지 않는 이전 장치를 지원하고 크로스 플랫폼으로 만드는 것이 더 쉽습니다.
(GameKit에는 추가 메쉬 네트워킹 기능이있어서 A와 B는 C와 릴레이를 사용하여 통신 할 수 있다고 생각합니다.이 테스트를 거치지 않았습니다.) 몹시 중요하지 않습니다.
- 1. iPhone GameKit, GKScore
- 2. iphone gamekit api의
- 3. gamekit iphone api의 RSSI 값
- 4. iPhone GameKit : 클라이언트가 다른 클라이언트를 감지합니다.
- 5. Gui 비동기 작업 패턴?
- 6. Java의 비동기 작업 패턴
- 7. iPhone GPS를 통해 Gamekit/Bonjour 추적
- 8. iPhone GameKit Picker 기본 연결 문제
- 9. 비동기 웹 서비스 디자인 패턴
- 10. 재사용 가능한 비동기 HttpHandler 패턴
- 11. JSP로 비동기 캐시 패턴 구현하기
- 12. 비동기 ASP.NET 서버 출력
- 13. WCF 서버 - 비동기 메서드
- 14. 비동기 클라이언트 서버 WCF
- 15. 서버 에뮬레이터를위한 디자인 패턴
- 16. iPhone3.0의 Gamekit 서버에서 지원할 수있는 클라이언트 수
- 17. 코코아 터치 - GameKit GKPeerPickerController devices
- 18. iphone 비동기 NSURLConnection 취소
- 19. iPhone SDK - 비동기 동작?
- 20. iPhone JSON 비동기 코딩
- 21. iPhone 용 비동기 이미지로드
- 22. 비동기 nsconnection 호출 결과에서 uitableview를 채우는 패턴
- 23. C에서 다단계 비동기 메서드 호출 패턴
- 24. C : 백그라운드 스레드에서 비동기 오류를 반환하기위한 패턴?
- 25. iPhone에서 GameKit 프레임 작업
- 26. gameKit 또는 bounjour?
- 27. GameKit 블루투스 전송 문제
- 28. GameKit : GKSession 설명서
- 29. iPhone SDK : GameKit 및 대용량 파일 + 연결이 끊어졌습니다.
- 30. GKSession 문제 - Objective-C GameKit