Inflearn Community Q&A
프로그램 에러 관련 질문...
Resolved
Written on
·
475
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 함수가 실행되었습니다.
더욱 오리무중인건, 복불복 식으로 어떨 땐 정상적으로 동작하고 어떨 땐 에러가 발생합니다.
그래서 에러가 발생하면 프로그램을 종료시키고, 다시 컴파일시켜봅니다. 에러가 발생하지 않을 때까지요.
제가 원인을 제대로 몰라서 그런 것 같은데요, 혹시 이렇게 무식하게 계속 다시 컴파일하는 방법이 아니고 진짜 에러를 해결하는 방법이 무엇인지 궁금합니다.
Quiz
네트워크 기초 이론 학습이 서버 프로그래밍에 중요한 이유가 무엇일까요?
서버 하드웨어 선택에 도움이 되어서
동시 접속 처리 및 해킹 방어 등 안정성 확보를 위해
데이터베이스 설계를 더 효율적으로 할 수 있어서
클라이언트 UI 디자인 실력을 향상시켜서
Answer 2
1
서버가 열리지 않아서 발생하는 문제를 잠시 예방하기 위해
클라에서 시작하자 마자 잠시 대기타도록
Sleep을 넣어주시면 될 것 같습니다.
재컴파일 부두술(?)로 해결하기 보다는
네트워크 함수에서 exception이 발생하면
그 사유를 콘솔 로그로 찍어서 살펴보고 고치는 쪽이 좋아 보입니다.
그리고 원래 네트워크 쪽은 일어날 수 있는 문제가 굉장히 많습니다.
에러가 나는 오류코드만 봐도 몇백개가 되기 때문에
그때 그때 찾아보고 고치는게 속편합니다.
0
제 컴퓨터에서 dotnet 프로세스를 완전히 종료시키고 실행해보니 잘 되네요... 음.. 일단 아직 확실하게 검증이 된 건 아니지만 에러가 발생할 때는, 프로그램이 제대로 종료되지 않아서 발생한 문제로 추정이 됩니다.






제가 에러가 발생했을 때의 ip주소를 출력해봤는데요,
제 컴퓨터에서 AdGuard라는 DNS 우회 프로그램을 사용중인데, 꼭 에러가 발생할 땐 제 localhost 주소가 안 뜨고 다른 주소가 로그로 찍히더라구요
그래서 이 우회 프로그램을 끄고 컴파일을 했더니 예전에는 간헐적으로 에러가 발생했었는데 이제는 아예 에러가 발생하지 않게 되었습니다.