연결 수락과 연결별 데이터 교환은 서로 다른 객체의 책임이다.
포트에 bind하고 accept를 기다린다.
한 원격 클라이언트와 연결된다.
대상 IP와 포트로 connect한다.
연결의 양방향 바이트를 제공한다.
핵심: accept와 session read가 둘 다 블로킹이므로 실행 역할을 분리한다.