inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

채팅 테스트 #2

SendForEach에 대한 질문 사항

282

꾸준히한다

작성한 질문수 4

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 

안녕하세요 강의 내용 중에 궁금한 점이 있어서, 문의드립니다.

1. SendForEach 호출시에 모든세션에 send를 진행하게되는데 이 send를 호출한 순서대로 처리하지 않는 부분이 궁금한데요,

 

서버에 각 세션 마다 비동기로 recv진행하게되는데 공용 쓰레드 풀에서 쓰레드 개입해서 알려주기 때문에, 거의 동시에 왔을 경우 순서에 대한 보장이 없는건가요??

Sleep(1)을 이용해서 약간에 딜레이만 줘도 순서대로 전송되는걸 확인했습니다.

 

2. 1번가 비슷한 내용이긴한데요 SendForEach에서 Send 후에 서버에서 브로드캐스팅을 통해 연결되있는 모든 서버로 전송하게 되는데

I am {playerID} 부분을 클라에서 찍어보면 0 0 0 1 1 1 요런식으로 안나오고 막 섞여서 나오고 있는데, 이 부분에 대한 이유가 궁금합니다.

 

 

 

network unity C#

답변 1

0

Rookiss

일단 Send/Recv 쪽은 비동기 함수를 호출하고 있기 때문에
함수를 요청한 순서대로 꼭 처리된다는 보장이 없습니다.
TCP 연결 특성상 내가 데이터를 전송하고 싶어도
상대가 받을 수 없는 상태라면 전송이 지연될 수 있기 때문에
결과적으로 전송이 완전히 끝나는 시점은 우리가 예측할 수 없습니다.

C#에서의 RAII

0

65

3

TLS 질문드립니다.

0

79

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

74

2

Unity Span

0

97

2

XML, Dll 차이점

0

134

2

Session 질문입니다

0

96

1

Write Read 커서 키워드

0

88

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

85

2

네트워크 Send 전담 스레드 배치

0

112

2

UnhandledException 으로 서버 터지는 경우

0

102

2

컨텐츠 단, 엔진 단

0

118

1

질문 있습니다

0

92

2

C# 게임서버 3D MMORPG

0

159

2

유니티6 버전

0

106

2

receive하는 부분과 send하는 부분의 차이

0

153

2

커서의 위치의 중요성

0

110

2

C++ 전혀 모르는데 C# 서버

0

176

2

강의에 질문이 있습니다

0

92

2

멀티스레드 이해도 질문

0

107

1

500 vs 500

0

147

3

OnAcceptHandler 액션 함수

0

70

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

204

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

85

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

112

1