자세한 내용은 아래 링크를 참고하시기 바랍니다. http://ryulib.tistory.com/457
제가 진행했었던 1:1 온라인 강의 시스템에 사용했던 소스 일부를 새로 정리해 본 것입니다. 예전 소스를 거의 무시한채 새로 만들었기 때문에 버그가 많을 수 있습니다. 이슈에 남겨주시면 틈틈히 고쳐 나가겠습니다.
기본적으로 UDP를 이용해서 P2P로 패킷을 전송하지만, P2P로 보낼 수 없는 상황이되면 TCP를 이용해서 서버를 통해 릴레이를 하게 되어 있습니다.
원래는 1:1 서비스에서 사용했지만 n:m 상황에서도 사용할 수 있도록 수정했습니다. 기본적인 로그인 처리 및 사용자 처리 등의 패킷이 정의 되어 있습니다.
서버 - UDP 홀펀칭을 위해서 외부 주소 및 포트를 전달하기 위한 게이트웨이 역활 - UDP 홀펀칭이 실패하면 서버가 TCP로 릴레이로 전달하는 기능 클라이언트 - 접속, 로그인, 패킷 전송
|