소켓

관련 함수

socket()

#include <sys/socket.h>

int socket(int domain, int type, int protocol);

소켓을 만드는 함수, 성공 시 파일 디스크립터, 실패 시 -1 반환

사용 예시

int sockfd_tcp = socket(AF_INET, SOCK_STREAM, 0);  // TCP 소켓
int sockfd_udp = socket(AF_INET, SOCK_DGRAM, 0);   // UDP 소켓

bind()

#include <sys/socket.h>

int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);

IP 주소와 port를 소켓에 할당, 클라이언트 사이드의 경우 다른 클라이언트가 접속하지 않기 때문에 접속하기 위한 명시적인 고정 주소가 필요하지 않다. 따라서 커널이 connect()시 내부적으로 bind()를 생략한다. 이 때 클라이언트 소켓에 바인딩되는 포트를 단기 (ephemeral) 포트라고 한다.