안녕하세요 선생님 backlog : 최대 대기수 에 대해서 질문 드립니다.
646
작성한 질문수 18
class Listener
{
Socket _listenSocket;
Action<Socket> _onAcceptHandler;
public void Init(IPEndPoint endPoint, Action<Socket> onAcceptHandler)
{
// 문지기 생성 : 첫번째 인자에 네트워크 주소를 넣어줌
_listenSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
_onAcceptHandler += onAcceptHandler; // 연결
// 문지기 교육을 시킴 : 식당 주소와 포트번호를 기입
_listenSocket.Bind(endPoint);
// 영업 시작 : 리슨 소켓을 리슨 상태로 둔다.
// backlog : 최대 대기수
_listenSocket.Listen(10);
// *** 초기화를 하는 시점에 등록을 해줄 것
// 이 상태에서 클라가 connect 요청이 왔다고 한다면
// 콜백 방식으로 OnAcceptCompletd 함수 호출 된다.
// 비동기 방식으로 예약만 하는 것
// 낚시대를 10개를 꼽아 놓는다. 물고기가 많으면 ...
// 문지기 10개 버젼
for(int i = 0; i<10; i++)
{
// 문지기 1 버젼
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
args.Completed += new EventHandler<SocketAsyncEventArgs>(OnAcceptCompleted);
RegisterAccept(args);
}
}
수업 예제 코드 중에 Listen 클래스 를 작성하실 때
리슨 소켓 하나 만들어주고 그놈을 서버 컴퓨터에 바인딩을
시켜준다음
리슨 함수를 호출해 주고, 이상태에서 클라쪽에서 신호가 오면 그 다음 처리를 해주는 코드 설명이셨는데
여기서 리슨 함수 인자를 10으로 놓고
for문을 10번 반복 하셔서 문지기를 10개를 생성하셨습니다.
질문 : 최대대기수가 10이라는 얘기는
클라이언트가 10명이 접속 한다는 얘기 인가요?
그래서 문지기를 10개를 생성 해주셨는지
이게 맞다면 클라이언트 접속이 대략 1000명을 예상한다면
리슨 함수 인자로 1000을 넣어줘야 하나요?
답변 2
2
질문 : 최대대기수가 10이라는 얘기는 클라이언트가 10명이 접속 한다는 얘기 인가요?
-> 그렇지 않습니다.
식당에서 실시간으로 사람들이 몰리면 대기열이 있고
보통 앉아서 기다릴 수 있는 의자들이 현관문에 있을텐데요.
그런 개념이 backlog라고 보시면 됩니다.
동접 1000명이라고 해도 정말 동일한 시점에 딱! 1000명에 입장할 일은 없을테니
그 정도로 크게 backlog를 잡지는 않습니다.
TLS 질문드립니다.
0
38
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
44
2
Unity Span
0
69
2
XML, Dll 차이점
0
101
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
131
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





