2020-09-28 TIL

less than 1 minute read

소켓

  • https://recipes4dev.tistory.com/153

대기열

  • 클라이언트가 접속을 요청하면 대기열에 클라이언트 정보를 저장한다.
  • 저장은 큐(FIFO) 방식으로 관리한다.
  • 대기열의 크기가 클라이언트의 연결을 허락하는 최대 개수이다.
  • 대기열을 초과하여 클라이언트 요청이 들어왔을 때 서버는 응답하지 않는다.
  • 클라이언트는 내부에 설정된 시간 동안 기다리다 응답을 받지 못하면 예외를 던지고 연결 요청을 취소한다.
    • new ServerSocket(포트번호, 대기열 크기);
  • 대기열의 개수를 지정하지 않으면 기본이 50개이다.
  • 대기열이 가득 차면 대기열의 개수를 넘어서는 클라이언트 접속이 불가능해진다.
  • accept()를 호출하는 순간 대기열의 맨 앞의 클라이언트의 정보를 꺼내 연결한다.
    • 대기열에 자리가 비기 때문에 접속하지 못했던 클라이언트의 접속이 가능해진다.

소켓

  • https://recipes4dev.tistory.com/153

BufferedInput/OutputStream

  • flush()를 사용하지 않으면 buffer에 데이터가 쌓여있기 때문에 클라이언트가 데이터를 보내도 서버에 도착하지 않는다.
    • 그러므로 BufferedInputStream, BufferedOutputStream을 사용할 경우 flush()를 사용하여 데이터가 버퍼에서 보내지도록 해야한다.

Categories:

Updated: