_sendQueue 질문입니다.
384
작성한 질문수 8
SendAsync를 한다고 무조건 상대방이 받아준다는 보장이 없습니다.
로컬 환경에서야 pending이 거~~의 대부분 false로 뜨고 바로 완료 되겠지만
저 지구 반대편에 있는 사람이 접속했다면 이런저런 이유로
SendAsync가 바로 완료되지 않고 pending = true로 설정될 확률도 높습니다.
물론 말씀하신대로 Latency 뿐 아니라 Recv할게 너무 많아서
상대쪽에서 처리를 못해서 그럴 수도 있구요.
답변 1
1
네 그런 이유가 맞습니다.
Send는 Recv와 다르게 여러 쓰레드에서 동시다발적으로 일어날 수 가 있는데
SendQueue를 사용하지 않고 무조건 전송할 경우 순서가 꼬일 수가 있습니다.
(1, 2, 3번 순서로 패킷을 보내려 했는데, 멀티쓰레드 이슈로 3, 1, 2로 보내진다거나...)
따라서 순차적으로 꼭 보내지도록 패킷 큐를 사용하는 것도 있고,
이미 누군가가 보낼 때 중복해서 보내지 않고 큐에만 밀어넣는 용도도 있는 것이죠.
C#에서의 RAII
0
81
3
TLS 질문드립니다.
0
85
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
80
2
Unity Span
0
103
2
XML, Dll 차이점
0
135
2
Session 질문입니다
0
99
1
Write Read 커서 키워드
0
89
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
89
2
네트워크 Send 전담 스레드 배치
0
117
2
UnhandledException 으로 서버 터지는 경우
0
108
2
컨텐츠 단, 엔진 단
0
122
1
질문 있습니다
0
99
2
C# 게임서버 3D MMORPG
0
165
2
유니티6 버전
0
108
2
receive하는 부분과 send하는 부분의 차이
0
157
2
커서의 위치의 중요성
0
112
2
C++ 전혀 모르는데 C# 서버
0
182
2
강의에 질문이 있습니다
0
96
2
멀티스레드 이해도 질문
0
111
1
500 vs 500
0
156
3
OnAcceptHandler 액션 함수
0
74
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
208
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
88
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
116
1





