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

siasky21님의 프로필 이미지
siasky21

작성한 질문수

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

Unity 연동 시 Disconnect 문제

작성

·

151

0

안녕하세요 강사님

코드비교도 하고 소스코드를 다운 받아서 시도를 해도 해결이 되지 않아 문의 드립니다.

유니티 2022.3.15f 버전을 사용하고 net8.0을 이용하여 서버 및 클라이언트 빌드를 했습니다.

유니티 연동까지 했고, 버퍼크기는 65535로 설정해두었습니다.

유니티 connector.cs에서 클라이언트를 1로 설정했을 때에는 문제가 없으나

2 이상 올릴 경우 1번이 무조건 disconnect 처리가 됩니다. 100이상 올릴 경우 중간에 패킷조립에 실패하여

서버가 종료됩니다. 며칠을 고민하고 코드를 비교하고 강사님의 코드로만 진행을 해도 똑같아 문의남깁니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
siasky21님, Unity 연동 시 Disconnect 문제로 많은 어려움을 겪고 계신 것 같은데요, 문제 해결을 위해 몇 가지 제안을 드리겠습니다.

  1. 클라이언트가 여러 개일 때 Disconnect 문제가 발생하는 경우, 서버에서 각 클라이언트를 구분하고 관리하는 로직에 문제가 있을 수 있습니다. 클라이언트별 연결 상태를 관리하는 부분을 점검해 보세요.

  2. 패킷 조립 실패로 인한 서버 종료 문제는 패킷을 처리하는 로직에 버그가 있거나, 패킷 크기가 예상보다 큰 경우 생길 수 있습니다. 패킷을 읽고 쓰는 코드를 철저히 검토하여 예외 처리를 할 수 있는 방어적인 코드를 작성하도록 하세요.

  3. 네트워크 통신 부분의 디버그 로그(log)를 더 자세히 남겨서 어느 시점에 문제가 발생하는지 추적해보세요. 로그를 통해 문제의 원인을 좁혀나갈 수 있습니다.

  4. Unity의 네트워킹 기능이나, 사용하고 있는 네트워크 라이브러리의 버전이 최신인지 확인해보고, 필요하다면 버전을 올리거나 변경해보세요.

프로그래밍 문제 해결에는 시행착오가 필요하며, 때로는 고립된 테스트 케이스를 만들어 별도로 실험해보는 것도 좋은 방법입니다. 간단한 환경에서 실험하여 점차 복잡한 상황으로 확장해가며 문제를 분리해나가 보세요.

이상의 조언이 siasky21님의 문제 해결에 도움이 되기를 바랍니다. 추가적인 질문이 있다면 언제든 문의해 주세요.

siasky21님의 프로필 이미지
siasky21

작성한 질문수

질문하기