이번에는 recv() 함수에 대해서 알아보겠습니다. #include #include ssize_t recv(int socket, void *buffer, size_t length, int flags); Receive a message from a connected socket ▪ data를 수신할 때까지 대기합니다. ▪ socket: socket file descriptor ▪ buffer: message가 저장되어야하는 buffer를 가르킵니다(point). ▪ length: the buffer argument가 가리키는 buffer의 bytes안의 길이 (buffer의 최대 길이) ▪ flags: 수용하는 message의 type • 0은 regular data에 대한 flag입니다. flags 옵션..
소켓 프로그래밍을 시작하고 있으면 계속 AF_INET이라는 것이 눈에 띌 것입니다. 그렇다면 AF_INET의 목적은 무엇이고, 그 이외의 사용할 수 있는 것들은 어떤 것이 있을까? AF_INET은 소켓이 통신 할 수있는 주소 유형(이 경우 Internet Protocol v4 주소)을 지정하는 데 사용되는 주소 체계입니다. 소켓을 만들 때는 해당 주소의 패밀리를 지정해야하며 해당 유형의 주소만 소켓과 함께 사용할 수 있습니다. 예를 들어, Linux 커널은 UNIX(AF_UNIX) 소켓 및 IPX(AF_IPX)와 같은 29개의 다른 주소 계열과 IRDA 및 Bluetooth와의 통신(AF_IRDA 및 AF_BLUETOOTH)을 지원하지만 이러한 낮은 수준에서 사용할 수는 없습니다. 대부분의 AF_INET..
본 게시물은 아래의 게시글을 바탕으로 발취한 게시글입니다. https://techlog.gurucat.net/292 [네트워크/C] sockaddr, sockaddr_in, sockaddr_un 구조체 - 소켓 주소 정보를 나타낸다 기본 지식 'Socket Address Structures' 에 관해서 설명하는 글이다. 리눅스/유닉스 시스템에서는 소켓(socket)의 통신 대상을 지정하기 위해 '주소(address)'를 사용한다. 이 '주소' 라는 것을 저장하거나 techlog.gurucat.net 내용 수정은 없었으며 개념들을 보기 쉽게 한 곳에 모아서 정리하였습니다. 'Socket Address Structures' 에 관해서 설명하는 글이다. 리눅스/유닉스 시스템에서는 소켓(socket)의 통신 대..
#include ssize_t read(int fd, void *buf, size_t count); 다음은 read() 함수에 대해 살펴보겠습니다. Read from a file descriptor ▪ 데이터가 수신(다른 socket으로부터 보낼 때)될 때까지 대기합니다. ▪ file descriptor fd(socket)에서 buf 에서 시작하여 buffer로 bytes 수를 세려고 시도합니다. ▪ Return value • Success : 읽은 bytes 수가 반환되고, file position이 이 숫자만큼 향상됩니다. - 얼마나 읽었느냐에 따라 값이 달라집니다. 「EOF(End of File, EOF)는 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음」 • Zero : EOF(indi..