올려주신 강의에 버그가 있는 것 같습니다.
173
작성자 없음
작성한 질문수 0
서버 GameRoom쪽 Enter에 보면 클라이언트 세션리스트에 ADD 해주는 부분이 있습니다.
따라서 500개의 더미세션을 넣게되면 0번부터 500번까지 하나씩 add됩니다.
문제는 sessions를 돌면서 PlayerList패킷 내부의 player리스트에도 세션 수 만큼 담게되는데, 어쨋든 그 이후에 직렬화 해주는 부분에서 list내용을 직렬화 할때 player list수 만큼 offset값이 계속 누적되면서 준비된 버퍼사이즈가 부족하게됩니다.
올려주신 강의는 16byte * 100 만큼 버퍼사이즈를 잡아서 500명까지는 괜찮습니다. 하지만 버퍼사이즈를 줄이거나, span.slice방식을 사용하면 직렬화 도중 크래시가 발생합니다.
우선 버퍼사이즈를 떠나서 계속해서 누적되는 부분 자체가 버그라고 생각되는데 혹시 제가 놓친 부분이 있는건가요?
답변 1
0
버그라기보단 그냥 애당초 최대 버퍼 사이즈를 정해줬으면,
하나의 패킷이 그 이하로 들어가게 만들어줘야 합니다.
이건 실제 서버에서도 마찬가지여서
한 패킷에 안 들어가면 둘을 쪼개서 보낸 기억이 있네요.
그리고 버퍼 사이즈는 보통 꽤 크게 잡아주긴 합니다.
C#에서의 RAII
0
66
3
TLS 질문드립니다.
0
80
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
74
2
Unity Span
0
98
2
XML, Dll 차이점
0
134
2
Session 질문입니다
0
96
1
Write Read 커서 키워드
0
88
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
85
2
네트워크 Send 전담 스레드 배치
0
113
2
UnhandledException 으로 서버 터지는 경우
0
102
2
컨텐츠 단, 엔진 단
0
118
1
질문 있습니다
0
93
2
C# 게임서버 3D MMORPG
0
159
2
유니티6 버전
0
106
2
receive하는 부분과 send하는 부분의 차이
0
154
2
커서의 위치의 중요성
0
111
2
C++ 전혀 모르는데 C# 서버
0
176
2
강의에 질문이 있습니다
0
93
2
멀티스레드 이해도 질문
0
107
1
500 vs 500
0
147
3
OnAcceptHandler 액션 함수
0
70
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
204
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
86
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
113
1





