안녕하세요 TCP HolePunching 개발관련하여 도움을 요청드립니다 제발 도와주세요 ㅠㅠ
프로젝트특성상 클라이언트간의 안정적인 파일송수신이 주 목적이기 때문에 UDP보다는 TCP 방식을 선택하였습니다.
클라이언트가 각자 다른 네트워크망에 존재한다고 가정하고....
클라이언트1 <-------> NAT <-------> [서버] <--------> NAT <---------> 클라이언트2
이렇게 구성되어있다고 할때요 서버는 각 클라이언트의 사설 IP, 공인IP(public IP) 를 갖고 있으며 클라이언트1과 2가 P2P연결 요청시
서버는 각 클라이언트에게 상대편 클라이언트의 사설IP, 공인IP 를 가르쳐줍니다.
그럼 이제
1. 각 클라이언트는 12168번 포트(임시로 서로 약속한 포트넘버) 로 소켓을 생성하여 외부의 연결요청을 대기하고 있고
2. 각 클라이언트는 일정시간동안 상대방의 사설IP, 12168번 포트로 접속을 시도합니다