개인 공부/네트워크
[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에 전달된 주소의 변수 크기를 바이트 단위로 전달