개인 공부/네트워크

[Chapter 04-2] TCP기반 서버, 클라이언트 구현

Koalitsiya 2023. 8. 7. 16:39

TCP 서버에서의 기본적인 함수 호출 순서

 

listen 함수

#include <sys/socket.h>
int listen(int sock, int backlog);	//성공 시 0, 실패 시 -1 리턴
  • 소켓을 연결 요청 대기 상태로 변경
  • sock: 연결 요청 대기 상태에 두고자 하는 소켓의 파일 디스크립터 전달
  • backlog: 연결 요청 대기 큐의 크기 정보 전달

 

accept 함수

#include <sys/socket.h>
int accept(int sock, struct sockaddr * addr, socklen_t * addrlen);
//성공 시 생성된 소켓의 파일 디스크립터, 실패 시 -1 리턴
  • 연결 요청 대기 큐에서 대기 중인 클라이언트의 연결 요청 수락
  • sock: 서버 소켓의 파일 디스크립터 전달
  • addr: 연결 요청 한 클라이언트의 주소 정보를 담을 변수의 주소 값 전달
  • addrlen: 두 번째 매개변수 addr에 전달된 주소의 변수 크기를 바이트 단위로 전달

 

connect 함수

#include <sys/socket.h>
int connect(int sock, struct sockaddr * servaddr, socklen_t addrlen);
//성공 시 0, 실패 시 -1 리턴
  • 서버의 연결 요청 대기 큐에 연결 요청 정보 전달
  • sock: 클라이언트 소켓의 파일 디스크립터 전달
  • servaddr: 연결 요청 할 서버의 주소 정보를 담은 변수의 주소 값 전달
  • addrlen: servaddr에 전달된 주소의 변수 크기를 바이트 단위로 전달