client에서 사용하는 connect() 함수입니다. #include int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) Initiate a connection on a socket ▪ TCP 소켓의 경우, 서버에 대한 연결을 설정합니다. ▪ UDP 소켓의 경우, 클라이언트가 소켓 설명을 사용할 수 있도록 간단하게 서버 주소만 저장합니다. ▪ sockfd : socker에 대한 file descriptor ▪ addr : 연결하는 address ▪ addrlen : addr에 의해 가르켜진(pointed) address structure의 size (bytes) ▪Return value • Success: 0 • Failur..
#include int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); Accept a connection on a socket ▪ TCP Server에서만 사용할 수 있습니다. ▪ 연결 request이 도착할 때까지 머무릅니다. ▪ sockfd : 들어온 socket에 대해 file descriptor (socket type should be SOCK_STREAM) ▪ addr : client socket의 address로 채워질 sockaddr 구조체에 대한 pointer ▪ addrlen : client address의 실제 크기를 포함합니다. ▪ Return value • Success: 들어온 socket에 대해 file des..
listen()의 정의에 대해서 알아봅시다. #include int listen(int sockfd, int backlog); Listen for connections on a socket ▪ OS에서 SYN packet을 수신하고 대기열에 넣는다고 알려주는 함수입니다. ▪TCP Server에서만 사용할 수 있습니다. ▪ sockfd : socket에 대한 file descriptor (socket type should be SOCK_STREAM) ▪ backlog : 서버가 요청을 accept할 때까지 대기하는 동안 시스템이 대기할 수 있는 최대 연결 request의 수 ▪ Return value • Success: 0 • Error: -1 ▪ Example if (listen(serv_sock, 5)..
bind() 함수는 다음과 같이 정의됩니다. #include int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Assign an address to a socket ▪ sockfd : socket에 대한 file descriptor ▪ addr : socket에 배정한 address(IP address and port number) ▪ addrlen : addr에 의해 가르켜진(pointed)된 address structure의 size(bytes) ▪ Return value • Success: 0 • Error: -1 ▪ Example memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr..
socket() 함수는 어떤 함수일까요? #include int socket(int domain, int type, int protocol) Create an endpoint for communication ▪ domain: 통신을 진행할 영역입니다. protocol family를 지정합니다. • PF_INET: IPv4 • PF_INET6:IPv6 ▪type: service의 type입니다. 어떤 type의 protocol을 사용할지 결정합니다. • SOCK_STREAM:TCP • SOCK_DGRAM:UDP • SOCK_RAW:rawIP ▪protocol: specifies the specific protocol •Usually 0 which means the default •IPPROTO_TCP(..