728x90
TCP 서버/클라이언트의 함수 호출 순서

- listen 함수 : 서버 소켓을 연결요청 대기 상태로 바꿈
int listen(int sockfd, int backlog);
-> sockfd : 서버 소켓의 fd, handle 전달
-> backlog : 연결 요청 대기열의 크기 설정
-> 클라이언트에서 connect를 통해 연결 요청을 하면 서버 소켓이 요청받은 데이터를 연결 요청 큐에 저장
- accept 함수 : 클라이언트의 연결 요청 수락
int accept(int sockfd, struct sockaddr* addr, socklen_t* addrlen);
-> 성공 시 클라이언트와 송수신할 소켓의 fd, handle, 실패 시 -1 반환
-> addr : 연결 요청한 클라이언트의 주소 정보
-> accept 시에 연결요청 대기 큐에 있던 정보로 소켓을 생성하여 반환하고 그 소켓을 이용하여 데이터를 송수신
-> 연결 요청 대기 큐에 정보가 없으면 block 상태로 있다가 connect를 통해 정보가 들어오면 진행
- connect 함수 : 서버의 연결 요청 대기큐에 정보를 등록
int connect(int sockfd, struct sockaddr* serv_addr, socklen_t addrlen);
-> sockfd : 생성한 소켓의 fd 전달
-> serv_addr : 서버 주소 정보
728x90
'Programming > Network' 카테고리의 다른 글
열혈 TCP/IP 05-1. 에코 클라이언트 (0) | 2021.02.14 |
---|---|
열혈 TCP/IP 04-3. Iterative 서버 (0) | 2021.02.14 |
열혈 TCP/IP 04-1. TCP와 UDP에 대한 이해 (0) | 2021.02.14 |
열혈 TCP/IP 03-4. 인터넷 주소의 초기화와 할당 (0) | 2021.02.09 |
열혈 TCP/IP 03-3. 네트워크 바이트 순서와 인터넷 주소 변환 (0) | 2021.02.05 |