Listener 관련 질문
354
작성한 질문수 22
강의 내 1:45초쯤 더 많은 손님을 받을수 있도록 Listener에 for문을 추가하였습니다.
RegisterAccept -> (socket.AcceptAsync) -> OnAcceptCompleted -> RegisterAccept로 이어지는 loop가 10개 생성되었다고 이해했습니다.
그렇다면 하나의 ListenSocket에 10개의 loop가 묶여있는 상태에서 client로부터 온 소켓들이 어떻게 하나씩 배치될수 있나요? 다른 loop에 같은 소켓이 배치될수도 있을것 같은데 아무리 생각해도 이 부분이 이해가 잘 안가서 질문드립니다.
강의 잘 수강하고 있습니다. 감사합니다.
답변 2
0
답변 감사합니다
혹시라도 운이 없어서 하나의 물고기에 2개 이상의 낚시대가 반응 (args.completed 이벤트 발생)할수도 있다고 생각했는데 그러한 일이 발생할수도 있나요?
0
애당초 클라에 배치되는건 listenSocket이 아니고, 별도로 소켓을 만들어줍니다.
listenSocket은 정말로 문지기의 영업용 휴대폰 같은 개념이고 손님들과는 무관합니다.
0
답변 감사합니다
수업중
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
args.Completed += new EventHandler<SocketAsyncEventArgs> (OnAcceptCompleted);
RegisterAccept(args);
에서 for문을 추가하여
for (int i = 0; i < register; i++)
{
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
args.Completed += new EventHandler<SocketAsyncEventArgs> (OnAcceptCompleted);
RegisterAccept(args);
}
으로 Listener가 더 많은 손님을 받을수 있도록 변경하셨다고 하였는데 이부분이 잘 이해가 되지 않습니다.
감사합니다
0
RegisterAccept 코드에서 실제로 Accept 비동기 코드를 실행하는데,
1번 호출했으면 1번 손님을 받고 끝나는겁니다. (다시 Register하기 전까진)
낚시에 비유하면 낚시대가 1개라면 물고기도 한 번에 딱 한마리만 낚을 수 있겠죠?
그리고 물고기를 끌어올린 다음에 다시 낚시대를 던져서 낚시를 이어나가게 될겁니다.
for문으로 SocketEventArgs를 여러개 만들어 Register를 다수 실행하는 것은
마치 낚시대를 10개 동시에 물에 넣는 것과 유사합니다.
TLS 질문드립니다.
0
57
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
57
2
Unity Span
0
82
2
XML, Dll 차이점
0
111
2
Session 질문입니다
0
84
1
Write Read 커서 키워드
0
79
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
76
2
네트워크 Send 전담 스레드 배치
0
100
2
UnhandledException 으로 서버 터지는 경우
0
91
2
컨텐츠 단, 엔진 단
0
108
1
질문 있습니다
0
78
2
C# 게임서버 3D MMORPG
0
153
2
유니티6 버전
0
100
2
receive하는 부분과 send하는 부분의 차이
0
135
2
커서의 위치의 중요성
0
105
2
C++ 전혀 모르는데 C# 서버
0
171
2
강의에 질문이 있습니다
0
89
2
멀티스레드 이해도 질문
0
98
1
500 vs 500
0
132
3
OnAcceptHandler 액션 함수
0
64
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
194
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
84
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
107
1
스핀락 질문.
0
111
2





