2013-11-25 1 views
2

나는 현재 libgdx 그래픽 api와 모든 서버 클라이언트 네트워킹을위한 kryonet api를 사용하여 android multilayer game (one on fighting)을 개발 중이다. 혹시 모르실 지 모르지만, libgdx는 게임 개발을위한 오픈 소스 자바 API입니다. Kryonet은 게임 pc, android 및 linux에 적합한 독립적 인 네트워킹 api입니다. 지금까지 모든 것이 잘 진행되고 있습니다 ... 서버를 만들고 2 명의 클라이언트를 플레이어로 만들었습니다.안드로이드 게임 서버가 kryonet + LibGdx를 사용하지 않고 있습니다! hallpp

PC에서 서버와 클라이언트를 실행 해 보았습니다. 그 일. 그런 다음 안드로이드 폰에서 PC 및 플레이어 클라이언트로 서버를 실행 해 보았습니다. 그 일.

하지만 ... 내 안드로이드 전화를 서버로 사용할 때 문제가 발생합니다. 내 클라이언트 프로그램은 안드로이드 서버를 발견 할 수 없습니다. 나는 심지어 내가 whatsmyip.com에서 내 전화의 IP를 사용했는지 확인했다. 하지만 내 안드로이드 서버는 여전히 보이지 않습니다. 인터넷 권한으로 매니페스트를 올바르게 설정했는지 확인했습니다.

모바일 IP로 인해 Android 휴대 전화를 서버로 실행할 수 있습니까? 중앙 서버가 필요 없도록이 작업을 수행해야 할 필요가 있습니다. 플레이어는 한 플레이어가 서버를 시작하고 다른 플레이어가 서버 플레이어를 시작하는 P2P 방식으로 간단하게 재생할 수 있습니다.

답변

1

비슷한 문제가있었습니다. 모바일 네트워크 연결을 사용하려고합니다. 문제는 모바일이 방화벽 집합 뒤에있을 가능성이 높다는 것입니다. 문제를 극복하는 데 사용할 수있는 다양한 솔루션을 살펴 보았습니다.

문제는 외부 IP 주소가 휴대 전화의 IP 주소가 "실제"주소가 아니라는 것입니다. 이것은 많은 모바일 장치가 나가는 게이트웨이입니다. 게이트웨이는 NAT tables이라는 기술을 사용하여이 IP 주소로 오는 트래픽을 사용자의 장치에 속하게합니다. 게이트웨이는 일반적으로 게이트웨이가 예상하지 않는 트래픽을 무시합니다. This 문서에서는 문제에 대한 개요를 제공합니다.

다른 hole punching 방법 (STUN ...)을 살펴볼 방법이 있습니다.

이 문제를 해결하기 위해 여러 가지 방법을 시도했지만, 결국 릴레이 서버를 사용해야했습니다. 필자는 아마존 웹 서비스 (AWS)를 사용하여 앱을 무료로 사용할 수있는 무료 티어를 제공했습니다. 당신을 시작하게하는 것이 좋을 것이고, 나는 그것을 메시지의 릴레이에 사용하고 있습니다.

희망이 도움이됩니다.

+0

오, 좋은 정보입니다. 내가 언급 한 릴레이 서버를 체크 아웃하자. 작동 여부에 관계없이 다시 게시됩니다. – codehawk

+0

아마존 웹 서비스 페이지로 갔을 때 혼란 스러웠습니다. 나는 그들의 페이지에서 릴레이 서버와 관련된 어떤 용어도 보지 못했다. 나는 단순히 Android 용 SDK를 다운로드하고 프로젝트에 구현합니까? 답장을 보내 주셔서 감사합니다. – codehawk

+0

안녕하세요, AWS에서 제공하는 것은 공용 IP 주소가있는 무료 Linux 상자입니다. 당신은 당신이 원하는 것을 실행할 수 있습니다. 그러나 이것 (http://www.blog.gartonhill.com/setting-up-a-free-minecraft-server-in-the-cloud-part-1/)에서 minecraft 예제를 설정하는 방법을 살펴보십시오. 대부분의 단계는 응용 프로그램과 동일한 Java 응용 프로그램이됩니다. –

관련 문제