• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

프로그램 에러 관련 질문...

21.05.19 01:59 작성 조회수 265

0

클라이언트 코드에서

socket.Connect()를 통해 서버와 연결을 시도하는데, 이 부분에서 오류가 발생합니다.

System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (61): Connection refused [fe80::1%1]:7777

   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

   at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)

   at DummyClient.Program.Main(String[] args) in DummyClient/Program.cs:line 26

ServerCore와 동시에 실행할 때, 서버가 아직 열리지 않은 상태에서 Connect를 시도해서 오류가 나는 경우는 알겠는데, 어떨 때는 빌드 후 컴파일하고나서 계속 위와 같이 Connect 함수에서 에러만 뜨고 연결이 되지 않습니다.. 서버는 정상적으로 Init 함수가 실행되었습니다.

더욱 오리무중인건, 복불복 식으로 어떨 땐 정상적으로 동작하고 어떨 땐 에러가 발생합니다.

그래서 에러가 발생하면 프로그램을 종료시키고, 다시 컴파일시켜봅니다. 에러가 발생하지 않을 때까지요.

제가 원인을 제대로 몰라서 그런 것 같은데요, 혹시 이렇게 무식하게 계속 다시 컴파일하는 방법이 아니고 진짜 에러를 해결하는 방법이 무엇인지 궁금합니다.

답변 2

·

답변을 작성해보세요.

1

서버가 열리지 않아서 발생하는 문제를 잠시 예방하기 위해
클라에서 시작하자 마자 잠시 대기타도록
Sleep을 넣어주시면 될 것 같습니다.

재컴파일 부두술(?)로 해결하기 보다는
네트워크 함수에서 exception이 발생하면
그 사유를 콘솔 로그로 찍어서 살펴보고 고치는 쪽이 좋아 보입니다.

그리고 원래 네트워크 쪽은 일어날 수 있는 문제가 굉장히 많습니다.
에러가 나는 오류코드만 봐도 몇백개가 되기 때문에
그때 그때 찾아보고 고치는게 속편합니다.

leomessi님의 프로필

leomessi

질문자

2021.05.23

제가 에러가 발생했을 때의 ip주소를 출력해봤는데요,

제 컴퓨터에서 AdGuard라는 DNS 우회 프로그램을 사용중인데, 꼭 에러가 발생할 땐 제 localhost 주소가 안 뜨고 다른 주소가 로그로 찍히더라구요

그래서 이 우회 프로그램을 끄고 컴파일을 했더니 예전에는 간헐적으로 에러가 발생했었는데 이제는 아예 에러가 발생하지 않게 되었습니다.

0

leomessi님의 프로필

leomessi

질문자

2021.05.19

제 컴퓨터에서 dotnet 프로세스를 완전히 종료시키고 실행해보니 잘 되네요... 음.. 일단 아직 확실하게 검증이 된 건 아니지만 에러가 발생할 때는, 프로그램이 제대로 종료되지 않아서 발생한 문제로 추정이 됩니다.