Socket 통신

·2022년 11월 15일
0

Network

목록 보기
5/7

📌 Socket 통신 이란?

  • Socket이란 두 프로그램이 서로 데이터를 주고 받을 수 있는 양쪽에 생성되는 통신 단자이다.
  • Socket 통신이란 서버와 클라이언트 양방향 연결이 이루어지는 통신으로, 클라이언트도 서버로 요청을 보낼 수 있고 서버도 클라이언트로 요청을 보낼 수 있는 통신이다.

📌 Socket 통신 흐름

📍 서버 (Server)

클라이언트 소켓의 연결 요청을 대기하고, 연결 요청이 오면 클라이언트 소켓을 생성하여 통신이 가능하게 한다.

  1. socket( )함수를 이용하여 소켓을 생성한다.
  2. bind( )함수로 ip와 port 번호를 설정한다.
  3. listen( )함수로 클라이언트의 접근 요청에 수신 대기열을 만들어 몇 개의 클라이언트를 대기시킬지 결정한다.
  4. accept( )함수를 사용하여 클라이언트와의 연결을 기다린다.

📍 클라이언트 (Client)

실제로 데이터 송수신이 일어나는 것은 클라이언트 소켓이다.

  1. socket( )함수로 가장 먼저 소켓을 연다.
  2. connect( )함수를 이용하여 통신할 서버의 설정된 ip와 port 번호에 통신을 시도한다.
  3. 통신 시도 시, 서버가 accept( )함수를 이용하여 클라이언트의 socket descriptor를 반환한다.
  4. 이를 통해 클라이언트와 서버가 서로 read( ), write( ) 하며 통신한다. (이 과정을 반복한다.)

📌 Socket 통신 특징

  • 서버와 클라이언트가 계속 연결을 유지하는 양방향 통신
  • 서버와 클라이언트가 실시간으로 데이터를 주고 받는 상황이 필요한 경우 사용
  • 실시간 동영상이나 streaming, 온라인 게임 등과 같은 경우 자주 사용

<참고 : https://kotlinworld.com/75
https://helloworld-88.tistory.com/215 >

profile
개발을 개발새발 열심히➰🐶

0개의 댓글