결국 이런 저런 방법을 다 써봤지만 UDP/P2P 구현에 실패했다.
어제 생각했던 바로는 포트나 IP 설정 때문인가 싶어 이리저리 빌드하고 바꿔가며 테스트 해봤지만 전부 실패.
유니티 버전이 문제라는 이야기도 있어 유니티 버전을 바꿔봤으니 이 역시 실패..
구글링 해보니 Socket 말고 UdpClient 로 구현한 사람이 있어 나도 시험해봤으나 프로그램이 멈춰버렸다. 에러조차 나오지 않는 실패..
결국 대신 TCP로 P2P 구현을 하려고한다.
그래도 서버까지 거치면 너무 느릴거 같으니까... P2P로 구현하는게 맞겠지?
TCP로의 구현은 예상대로 쉽게 끝났다. UDP 연결을 시도한게 대략 10시간 정도인데 TCP로는 2시간 만에 끝나버렸다.
물론 UDP로 만들면서 쓴 소스를 조금씩 수정한 덕분이긴 하지만..
다만 새로 발생한 문제가 있는데 바로 휴대폰 권한 문제다.
P2P이기는 하지만 서로 대등한 관계가 아니라 한쪽이 호스트가 되게 짜놨는데, 안드로이드 기기가 호스트인 경우 일반적인 게스트 접근을 차단해버린다. 제일 좋은 건 유니티를 통해 안드로이드에 권한을 요청하는 방법을 찾는건데.. 아무래도 "당신의 휴대폰을 서버로 쓸 권한"이라는 항목은 없을거 같고..
일단은 휴대폰 설정을 만져서 해결해야 할 것 같다.
즉 이 게임은 일반적인 휴대폰으로는 구동할 수 없게 되는 셈인데.. 포트폴리오라 상관없기도 하지만 마음에 걸린다.