공부해서 1:1 오목게임 같은거 만들어보려구 하는데요..
통신을 어떤 식으로 해야하는지 모르겠습니다.
대부분 찾아보니까 데스크탑(자바)로 서버만들고, 거기에 클라이언트(스마트폰) 두 명이 접속해서 게임 하는 방식이던데..
이렇게 하려면 뭘 공부해야하죠?? 자바 TCP/IP 공부하면 되나요??
그리고 이렇게하려면 톰캣 설치해야하는거 맞죠??
아니면 그냥 스마트폰 자체에서 한쪽이 서버역할하고, 한쪽이 클라이언트 역할하게 할수는 없나요?
예를들어 게임 방을 생성하면 그 사람이 서버가 되고, 방 목록 중에 하나를 찾아 연결을 요청해서 들어가는 사람이
클라이언트가 되게 말이죠...
답변 부탁드립니다!
1. 일단 공부해야하는 것은 "자바 소켓통신" 쪽을 공부하시면 될것같고요.
2 .따로 설치해야하는 것은 없습니다.
(말씀하신 톰캣은 홈페이지를 만들어서 제공할때 사용하는 웹서버용 프로그램입니다. 말씀하신 앱에 필요한 것은 웹서버가 아니라 "소켓 서버" 입니다. 단 윈도우에서 방화벽이 설치되어 있을경우 소켓 서버를 서비스 하시려면 사용하실 "포트(port)" 를 개방해줘야합니다.)
3. 별도의 중간 서버 없이 스마트폰 끼리 1:1로 통신 가능은 합니다. 하지만 스마트폰의 경우 이동성이란 문제 때문에 네트워크의 연결이 불안정하고 ip 변경, 방화벽 등에 의해서 서버의 역할을 수행하는데 어려움이 많습니다. 따라서 많은 서비스들이 안정적인 서비스 제공을 위해서 별도의 중계용 서버를 운영하는 것입니다.
(만일 원거리가 아니라, 10미터 내의 근거리에서 두 스마트폰간 통신하고자 한다면, 블루투스나 wifi 다이렉트를 통해서 두 스마트폰끼리 통신할수있습니다. 블루투스나 wifi 다이렉트도 소켓으로 통신하기 때문에 TCP/IP 통신 방식과 구현 방법이 거의 동일합니다.)
한쪽이 서버를 하고 한쪽이 클라이언트도 가능한데,
누가 방을 만들었다면, 그 방을 누가 만들었는지 확인할 방법이 없겠죠?
그래서 중계서버가 있어서, 만들어져 있는 방의 목록을 보여준다던가 해야겠죠.
(스타에서 배틀넷 서버가 필요한것 처럼)