2022.04.25 / 오늘의 공부

찬찬잉·2022년 4월 25일
0
post-thumbnail


서버

socket() 함수를 이용하여 소켓을 열고,

bind() 함수를 이용하여 ip와 port번호를 설정합니다.

listen()을 통해서 클라이언트들이 접근을 할때 수신 대기열 을 만들어서 몇개의 클라이언트를 대기 시킬지를 설정합니다.

accept() 함수를 이용하여 클라이언트의 연결을 기다립니다.

클라이언트

클라이언트도 socket() 함수를 이용하여 소켓을 엽니다.

connect() 함수를 이용하여 통신 할 서버의 ip와 port번호를 통해서

서버에 통신을 시도 합니다.

클라이언트가 connect()함수로 통신을 시도하면 서버의 accept() 함수가

클라이언트의 소켓 디스크립터(socket descriptor)를 반환하는데

이를 통해서 클라이언트와 서버가 read(), write() 를 통해서 통신을 할 수 있습니다.

통신이 끝나면

클라이언트와 서버는 각각 close() 함수를 통해서 연결을 종료합니다.

소켓 종류

1) 스트림 소켓(TCP)

  • 양방향으로 바이트 스트림을 전송하며, 연결 지향성을 띤다.

  • 오류수정, 전송처리, 흐름제어를 보장한다.

  • 송신된 순서에 따라 중복되지 않게 데이터를 수신한다.

  • TCP를 사용하여 소량의 데이터보다 대량의 데이터 전송에 적합하다.

2) 데이터그램 소켓(UDP)

  • 비연결형 소켓이다.

  • 데이터의 크기에 제한이 있다.

  • 전달이 확실하게 보장되지 않고, 데이터가 손실되어도 오류가 발생하지 않는다.

  • 실시간 멀티미디어 정보를 처리하기 위해 주로 사용한다.

ex) 전화

profile
디자이너, 기획자 출신의 개발자

0개의 댓글