inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

AcceptAsync()함수의 pending 상태에 대해서 질문드립니다.

261

모행

작성한 질문수 7

0

섹션2. 네트워크 프로그래밍

listener 파트에서 AcceptAsync함수에 대해서 궁금한점이 있습니다.

AcceptAsync 함수가 처음에 잘 이해가 안가서 디버깅을 해보려고 했는데요.

보통은 pending상태가 true여서 콜백으로 OnAcceptCompleted가 호출되는건 이해가 됬는데, pending 상태가 false인 경우는 어떤 경우인지 궁금합니다.

강의 내용이나 문서를 찾아보고 이해한 바로는 AcceptAsync가 호출되는 경우 이미 Connect요청이 있어서 처리한 경우 콜백으로 호출되지 않고 바로 OnAcceptCompleted를 호출해서 처리한다고 이해했는데요.

그래서 서버쪽에서는 AcceptAsync함수를 호출하기 직전에 중단점을 걸고, 클라이언트쪽에서는 Connect하고 Send까지 한 후에 다시 AcceptAsync를 호출하게 하면 pending=false가 되지 않을까 했는데, 결과는 계속 pending=true인 상태네요.

해당 부분 디버깅을 통해서 확인할 수 있는지 궁금하고, 실무에서 pending이 false로 리턴되는 경우가 자주 있는지 궁금합니다.

C# network unity

답변 1

0

Rookiss

pending = false인 경우는 '바로' 처리할 수 있는 상태입니다.
예를 들어 Send 함수를 호출할 때,
TCP SendBuffer로 바로 데이터를 복사할 수 있으면 바로 완료가 되는 것이고
Accept 함수를 호출할 때, 이미 Connect 요청이 와서
바로 처리할 수 있는 Session이 있으면 바로 완료가 되겠죠.

TLS 질문드립니다.

0

43

2

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

0

48

2

Unity Span

0

76

2

XML, Dll 차이점

0

105

2

Session 질문입니다

0

80

1

Write Read 커서 키워드

0

76

1

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

0

70

2

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

0

98

2

UnhandledException 으로 서버 터지는 경우

0

86

2

컨텐츠 단, 엔진 단

0

106

1

질문 있습니다

0

77

2

C# 게임서버 3D MMORPG

0

147

2

유니티6 버전

0

98

2

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

0

134

2

커서의 위치의 중요성

0

103

2

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

0

170

2

강의에 질문이 있습니다

0

86

2

멀티스레드 이해도 질문

0

95

1

500 vs 500

0

130

3

OnAcceptHandler 액션 함수

0

61

1

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

0

193

2

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

0

83

2

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

0

106

1

스핀락 질문.

0

110

2