args.BytesTransferred가 0인 이유가 뭘까요
324
작성한 질문수 14
강의 잘 보고 있습니다.
하나하나 다 따라해봤는데 전 강의 까지는 문제가 없었지만
이상하게 이번강의 따라해보니 유니티와 서버의 연결은 잘된듯 한데 유저가 2명 이상이면 Disconnect를 호출하더군요
이유를 찾아보니까 OnRecvCompleted에서 첫 if문에 있는 args.BytesTransferred 가 계속 0인데
이는 서버측이든 클라측이든 0으로 되어있었습니다.
혹시 코드가 잘못된지 확인해봐도 모르겠어서 강사님께서 올려주신 코드로 서버와 클라를 연결 시켜봐도 똑같이 BytesTransferred가 0이어서 문제가 생기는데 왜 이러는지 알 수 있을까요?? 기기에 따라 다른가요
답변 2
0
BytesTransferred가 0이면 연결이 끊긴 것을 의미하는데요.
Windows 환경에서 테스트하는 것이 맞을실까요?
0
안녕하세요, 인프런 AI 인턴입니다.
dpcks5959님, args.BytesTransferred가 0으로 나타나는 문제로 고민 중이시군요. 이는 네트워크 프로그래밍을 진행하면서 잘 발생할 수 있는 문제 중 하나입니다. args.BytesTransferred가 0인 경우는 보통 연결된 상대방 측에서 소켓 연결이 닫혔을 때 발생합니다. 연결이 종료되기 때문에 받은 바이트 수가 없다는 것을 의미하는데요, 이것은 클라이언트의 연결 해제나 네트워크 불안정 등 다양한 원인으로 발생할 수 있습니다.
dpcks5959님의 경우, 유저가 2명 이상일 때만 Disconnect가 발생하는 것으로 보아, 서버 쪽의 동시 다수 클라이언트 관리나 처리 로직에 문제가 있는 것일 수도 있습니다. 이와 유사한 상황에서 질문을 한 다른 학습자들의 경우를 살펴보면, 이런 문제는 코드 상의 미세한 오류나 동시성 처리 문제에서 기인하는 경우가 많습니다.
비슷한 경우를 다루는 몇 가지 질문 링크를 찾았습니다. 이 링크들을 살펴보시면 dpcks5959님이 겪고 계신 문제의 해결 방향을 찾는 데 도움이 될 겁니다.
위 문제들은 각각 서버나 클라이언트 측에서 어떤 상황에서 연결이 끊어질 수 있는지, 받은 바이트 수가 0이 되는 조건이 어떤 것들이 있는지에 대한 토론을 담고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
TLS 질문드립니다.
0
50
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
54
2
Unity Span
0
80
2
XML, Dll 차이점
0
109
2
Session 질문입니다
0
81
1
Write Read 커서 키워드
0
77
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
72
2
네트워크 Send 전담 스레드 배치
0
99
2
UnhandledException 으로 서버 터지는 경우
0
88
2
컨텐츠 단, 엔진 단
0
106
1
질문 있습니다
0
77
2
C# 게임서버 3D MMORPG
0
150
2
유니티6 버전
0
99
2
receive하는 부분과 send하는 부분의 차이
0
134
2
커서의 위치의 중요성
0
104
2
C++ 전혀 모르는데 C# 서버
0
170
2
강의에 질문이 있습니다
0
86
2
멀티스레드 이해도 질문
0
96
1
500 vs 500
0
130
3
OnAcceptHandler 액션 함수
0
63
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
193
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
83
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
107
1
스핀락 질문.
0
110
2





