
socket_recv() 함수를 사용하여 데이터를 수신할 때, 버퍼의 크기를 지정하지 않으면 데이터가 버퍼에 저장되지 않습니다. 이 경우, socket_recv() 함수는 수신한 데이터의 크기를 반환하고, 데이터는 버퍼에 저장되지 않습니다.
버퍼의 크기를 지정했을 때, 데이터가 버퍼의 크기보다 큰 경우, socket_recv() 함수는 데이터를 버퍼에 저장하고 나머지 데이터는 다시 수신해야 합니다. 이 경우, socket_recv() 함수를 반복적으로 호출하여 나머지 데이터를 수신해야 합니다.
예를 들어, 버퍼의 크기가 1024 byte이고 데이터가 2048 byte인 경우, socket_recv() 함수를 두 번 호출하여 나머지 데이터를 수신해야 합니다.
#hostingforum.kr
c
char buffer[1024];
int bytes_received = socket_recv(sock, buffer, sizeof(buffer), 0);
if (bytes_received < 1024) {
// 나머지 데이터를 수신하기 위해 socket_recv() 함수를 다시 호출
char remaining_data[1024];
int remaining_bytes = socket_recv(sock, remaining_data, sizeof(remaining_data), 0);
// 나머지 데이터를 버퍼에 추가
memcpy(buffer + bytes_received, remaining_data, remaining_bytes);
}
2025-07-17 17:05