인프런 커뮤니티 질문&답변

dndud088님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

유니티 연동 #4

IPAdress관련 질문입니다.

해결된 질문

22.11.29 00:24 작성

·

317

0

안녕하세요. 양질의 수업 잘 듣고 있습니다!

string host = Dns.GetHostName();
IPHostEntry ipHost = Dns.GetHostEntry(host);
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint endPoint = new IPEndPoint(ipAddr, 7777);

Unity 클라이언트의 위 코드를

IPAddress ipAddr = IPAddress.Parse("45.157.574.15");
IPEndPoint endPoint = new IPEndPoint(ipAddr, 7777);

이렇게 제 외부 IP 주소를 넣고 서버를 켠 후
클라이언트를 다른 컴퓨터에서 실행시켜 봤는데 연결이 안되더라고요... (포트 포워딩도 했고 예제 샘플로도 시도해봤습니다.)

구글링을 해봐도 IP주소를 저렇게 지정하면 된다고만 나와있어서 어떤 식으로 더 찾아봐야할지 감이 안잡히네요...

  1. 코드 자체에는 문제가 없고 공유기 설정과 같은 외부 문제

  2. 코드 자체가 문제

강사님이 보시기에는 어느 부분이 문제일 거 같은지 단서라도 주시면 더 열심히 찾아보겠습니다.

더 찾아보다가 너무 오래걸려서 작은 힌트라도 얻고자 질문드립니다..

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2022. 11. 29. 02:44

외부에서 연결을 시도하려면 사설IP가 아닌 공인IP이거나,
같은 네트워크망에 있어야 합니다.
강의에서 Dns.getHost~~로 주소를 얻어온 것은 같은 네트워크망이라 가정한 것이고
실제로 AWS 등 원격 서버에 띄워서 운영을 하게 됩니다.
cmd에 가신 다음 ping IP주소를 통해 핑이 가는지 테스트 해보시면
통신이 될지 예측이 가능합니다.

dndud088님의 프로필 이미지
dndud088
질문자

2022. 11. 30. 15:51

코드 자체에는 문제가 없다는 말로 이해하고 공유기 설정이나 방화벽을 이것저것 건드려 보고 결국 연결에 성공했습니다...
처음으로 다른 사람이 제 서버에 접속해서 돌아다니는 걸 보니 너무 기쁘네요 ㅠㅠ
게임 제작을 너무 좋아하는데 루키스님이 알려주시는 개발 지식이 너무 큰 도움이 되었습니다. 덕분에 공부 의지도 마구마구 생기네요
이번에 멘토링도 하게 됐는데 잘부탁드리겠습니다!

dndud088님의 프로필 이미지

작성한 질문수

질문하기