논블로킹 송수신 연결 관련 질문입니다.
강사님 안녕하세요.
논블로킹을 위해서 Register함수와 연결체크하는 콜백함수 OnAccepted함수를 사용하는 코드 중에 궁금한게 있어서
질문 남깁니다.
- 서버 프로그램만 중단점 걸어 놓은 상태인데요. 여기서
- 클라이언트 프로그램을 실행시키면 서버쪽의 OnAccept함수에 디버그포인트가 걸리는데
//Init함수에서 작성한 코드인데요.
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
args.Completed += new EventHandler<SocketAsyncEventArgs>(OnAcceptCompleted);
//========================
작성한 부분에서 , 클라가 연결 시도시에 connect 접속 신호가 args에게 전달이 되서 2번째 그림처럼
디버깅 포인트가 걸린건가요?
제가 궁금해서 서버 쪽 모든 코드에 디버깅포인트 걸었는데
서버 Main문의 while 문에서만 걸리는데요, 어떠한 동작 원리를 가지고 진행이 되는지 알고 싶습니다!
답변 2
1
args에 전달이 되었다는 표현은 살짝 애매하고,
args.Completed에 넣어준 콜백 함수를 통해서 통지를 받는 것입니다.
비동기 방식의 Accept 함수를 걸어놓은 상태에서
어떤 클라가 서버로 접속하게 되면
우리가 처음에 지정한 함수를 호출해주게 됩니다.
그리고 커널단에서 네트워크 로직을 처리한 다음
쓰레드 풀에 있는 다른 애를 깨워서 해당 함수를 호출해주기 때문에
Main 쓰레드에 BP를 걸어도 의미가 없습니다. (Main 쓰레드와 무관함)
TLS 질문드립니다.
0
39
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
45
2
Unity Span
0
71
2
XML, Dll 차이점
0
103
2
Session 질문입니다
0
78
1
Write Read 커서 키워드
0
72
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
68
2
네트워크 Send 전담 스레드 배치
0
97
2
UnhandledException 으로 서버 터지는 경우
0
84
2
컨텐츠 단, 엔진 단
0
103
1
질문 있습니다
0
76
2
C# 게임서버 3D MMORPG
0
143
2
유니티6 버전
0
96
2
receive하는 부분과 send하는 부분의 차이
0
132
2
커서의 위치의 중요성
0
102
2
C++ 전혀 모르는데 C# 서버
0
168
2
강의에 질문이 있습니다
0
85
2
멀티스레드 이해도 질문
0
94
1
500 vs 500
0
125
3
OnAcceptHandler 액션 함수
0
60
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
187
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
81
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
104
1
스핀락 질문.
0
107
2





