작성
·
566
0
안녕하세요
마지막 DummyClient에서 ServerCore로 계속해서 요청 보내는 부분에서 이상한 에러가 나서 문의드립니다.
ServerCore 쪽에서는 RegisterAccept에서 pending이 True 로 반환되고, DummyClient에서는 Connection refused Exception이 발생하네요 ㅠ
System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (61): Connection refused 192.168.35.35: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 /Users/hun/Projects/Server/DummyClient/Program.cs:line 28
혹시 의심될만한 부분이 있을까요?
답변 3
3
모든 접속이 다 실패하는 것인지,
아니면 일정 확률로 몇몇 접속만 실패하는 것일지가 관건일 것 같네요.
모든 접속이 다 막힌다면 IP 설정 문제일 확률이 높고,
DNS을 이용하지 않고 IP를 직접 코드에 박아서 테스트를 해볼 필요가 있을 것 같네요.
반면 몇몇 접속만 실패한다면 단기간에 접속 횟수가 너무 많아서 그런 것인데,
특별히 이상한 상황은 아니고 Listener backlog을 늘리거나
Connector 쪽에 적당한 Thread.Sleep로 텀을 두고 시도 바랍니다.
1
몇가지 확인을 해봤는데, AcceptAsync() 후에 이벤트를 트리거 하는 부분이 Mac 환경에서 정상적으로 동작을 하지 않는 것 같습니다 ㅠ
동기적으로 처리할땐 아무런 문제가 없이 동작하지만 비동기로 처리하면 Connection까지는 맺고 ServerCore쪽에서 아무런 응답이 없네요 ㅠ
혹시나 해서 동일한 코드를 윈도우 환경에서 돌려봤는데 잘 작동하네요 ㅠ
그리고 위에 말했던 Connection refused 에러는 AcceptAsync() 가 true 반환한 뒤에 소켓 연결을 요청하면 항상 발생하는 것 같네요 ㅠ 텔넷같은걸로 연결하려고 해봐도 동일하게 오류가...
평소 게임을 좋아해서 이번에 본격적으로 게임개발을 해보려고 강의를 듣고 있는데 기초부터 차근차근 알려주셔서 너무 좋은 것 같습니다.
앞으로도 잘 부탁드려요~ :)
https://www.inflearn.com/chats/608603
socket.acceptAsync와 관련하여 다른 문제 해결도 자유주제 게시판에 적어놓은 것들이 있으니 혹 도움이 되시면 좋겠습니다
++계속 맥을 이용하신다면 아마 뒤의 강의에서 배치파일을 이용할 때도 문제가 발생하실 것입니다
https://www.inflearn.com/chats/626688
배치파일 관련하여 부딪혔던 다른 문제에 대한 게시글도 혹시 몰라 첨부합니다
1
상당히 과거의 질문이지만 저도 동일 문제로 헤매다가 혹시나 다른 분들께 도움이 될까 싶어 문제 해결후 답변 남깁니다
저도 mac 환경이었구요
저같은 경우는 해당 오류가 이전 강의인 소켓 프로그래밍 입문#2에서 더미클라이언트와 서버코어가 connect를 시도할 때 발생했습니다
방화벽 문제인가 싶어서 확인해봐도 아니었습니다
결론은 터미널을 통해 서버코어 및 더미 클라이언트의 권한을 늘려주니 서로 소통하더라구요
++ 순서문제일 수도 있을 것 같습니다. 이후에 또 해당 문제가 발생하여 비주얼 스튜디오가 아닌 vscode를 통해 serverCore를 선 실행, 이후 dummy를 실행시키면 테스트 하는 동안 한 번도 해당 문제가 발생하지 않았습니다
선생님께서 알려주신대로 dummy쪽에 sleep을 길게 주고 동시 실행해도 문제가 발생하지 않았구요