TCP SERVER SIDE

소캣을 생성한 후 bind함수까지 호출이 완료 되면 소캣은 주소가 할당 된다.
listen( )함수를 통해 연결이 들어올 때 까지 대기한다.
클라이언트 측에서 connect 시도가 오면 accept( )함수를 통해 받아들인다
이후 read( ) 와 write( )함수를 통해 데이터를 송수신 하고 close( )함수를 통해 연결을 종료한다.
TCP CLIENT SIDE

소캣을 생성한 후 connect( )함수를 이용해 서버에 접속을 요청한다.
read( ) / write( )함수를 통해 데이터를 송수신 하며, close( )함수를 통해 연결을 종료한다.
위 내용을 한장의 사진으로 정리하면 아래와 같은 이미지처럼 통신하게 된다.

서버와 클라이언트의 소캣을 생성한 뒤
서버는 bind를 통해 서버를 열고 listen함수를 이용해
클라이언트가 connect함수를 이용해 접근을 요청해 오길 기다리며
클라이언트가 접근하면 서버는 accept을 통해 접근을 허용하고
read/write를 통해 데이터를 송수신한뒤
close를 통해 소켓 통신을 종료한다.
Echo 서버의 구현

Echo 서버는 클라이언트가 connect함수를 통해 접속한 뒤 보낸 내용을 다시 클라이언트에게 보낸 뒤 접속을 끊는다.
이때 옆 이미지와 같은 과정을 거치게 된다.
다만 주의 할 점은 옆 Echo 서버 모델은 동시에 둘 이상의 클라이언트에게 서버스를 제공할 수 있는 모델이 아님을 주의해야 한다.