인프런 커뮤니티 질문&답변
안녕하세요 선생님 backlog : 최대 대기수 에 대해서 질문 드립니다.
작성
·
646
2
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을 넣어줘야 하나요?
퀴즈
네트워크 기초 이론 학습이 서버 프로그래밍에 중요한 이유가 무엇일까요?
서버 하드웨어 선택에 도움이 되어서
동시 접속 처리 및 해킹 방어 등 안정성 확보를 위해
데이터베이스 설계를 더 효율적으로 할 수 있어서
클라이언트 UI 디자인 실력을 향상시켜서





