이번에는 send() 함수에 대해서 알아보겠습니다. #include #include ssize_t send(int socket, const void *buffer, size_t length, int flags); Send a message on a socket ▪ buffer에 있는 data를 bytes 길이까지 전송합니다 ▪ socket: socket file descriptor ▪ buffer: 보낼 message가 포함된 buffer ▪ length: bytes에 있는 message의 길이 ▪ flags: 전송할 message의 type입니다. • 0은 regular data에 대한 flag입니다. flags 옵션 설명 MSG_DONTWAIT 수신을 위해 대기가 필요하다면 기다리지 않고 -1을 반환..
이번에는 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..
#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..