Skip to content

Socket Programming C API


Socket Programming Tutorial In C For Beginners#

Client socket workflow

graph LR;
socket --> connect
connect --> id1["send or write"]
connect --> id2["recv or read"]
  • [[socket(2)]] | 소켓을 생성하여 file descriptor를 리턴받는다.
  • connect(2) | 서버에게 커넥션을 요청한다.
  • [[recv(2)]] | recieve data from the server

Server socket workflow

graph LR;
socket --> bind
bind --> listen
listen --> accept
accept --> id1["send or write"]
accept --> id2["recv or read"]
  • bind(2) | 소켓에 ip, port쌍을 바인드 한다.
  • listen(socket, backlog): accept를 통해 들어오는 연결들을 관리한다. backlog를 사용하여 최대 소켓 수를 정의할 수는 있는데, 동시성 프로그래밍과는 별개인 것 같다.
  • [[accept(2)]] accept(socket, struct sockaddr *, socklen_t *): 클라이언트 소켓을 받는다. 두 번째, 세 번째 인자를 넣어 클라이언트의 주소를 얻을 수 있다.
  • send(socket, char *buf, int buflen, flag): 지정한 소켓으로 메시지를 보낸다.

Network Address Translation#