Socket

정의정·2023년 10월 10일
0

Network

목록 보기
7/8
post-thumbnail

💡 Socket Programming

소켓 프로그래밍이 무엇인지 간단하게 다뤄보자.

🌟 소켓(Socket)이란?

소켓(Socket)은 프로세스 간 소통을 위한 인터페이스이다. OS라는 우체통의 Socket이라는 구멍을 통해 프로세스가 소통한다고 생각하면 이해가 쉽다.

TCP 기반의 소켓(SOCK_STREAM)과 UDP 기반의 소켓(SOCK_DGRAM)이 있는데, HTTP는 SOCK_STREAM을 사용한다.

Sockets API란?

Sockets API란 운영체제에서 제공하는 시스템콜 중 네트워크와 관련된 기능을 제공하는 시스템콜들의 집합을 말한다.

🌟 소켓 연결 과정

TCP기반 소켓의 연결 과정을 살펴보자.

  1. TCP 서버에서 socket()을 호출한다.
  2. 포트 번호를 bind()한다.
  3. listen()을 통해 서버측에서 듣도록 한다.
  4. accept()까지 실행 후 서버는 클라이언트 측으로부터 요청이 올 때까지 대기한다.
  5. TCP 클라이언트는 socket()을 호출하고 서버 측에 connect()를 통해 연결한다.
  6. 클라이언트와 서버가 결합되어 클라이언트의 write()를 서버가 read()할 수 있다.
  7. close()를 통해 연결이 해제된다.

🌟 소켓 함수들

1. Server

  • socket(): 소켓을 생성한다.
  • bind(): 생성한 socket에 특정 도메인을 연결한다.
  • listen(): 소켓을 서버에서 listen 하는 용도로 사용한다.
  • accept(): 클라이언트의 요청이 있을 때까지 대기한다.
  • close(): 소켓에서 활용한 리소스와 포트를 해제한다.

2. Client

  • socket(): 소켓을 생성한다.
  • connect(): 소켓에 연결한다.
  • write(): 소켓을 서버에 write 하는 용도로 사용한다.
profile
배움 기록

0개의 댓글