
socket_set_block() 함수는 socket을 블록킹 모드로 설정하는 데 사용됩니다. 블록킹 모드란, socket이 데이터를 읽거나 쓰기 위해 블록되는 것을 의미합니다.
이 함수의 동작 방식은 다음과 같습니다.
1. socket_set_block() 함수를 호출하면, socket의 블록킹 모드가 설정됩니다.
2. 블록킹 모드가 설정된 socket은 데이터를 읽거나 쓰기 위해 블록됩니다.
3. 블록된 socket은 데이터를 읽거나 쓰기 위해 대기합니다.
4. 데이터가 읽거나 쓰일 때까지 socket은 블록된 상태를 유지합니다.
블록킹 모드로 설정된 socket을 사용하는 방법은 다음과 같습니다.
1. 블록킹 모드로 설정된 socket을 사용하여 데이터를 읽거나 쓰기 위해, socket_read() 또는 socket_write() 함수를 호출합니다.
2. 데이터를 읽거나 쓰기 위해 대기합니다.
3. 데이터가 읽거나 쓰일 때까지 socket은 블록된 상태를 유지합니다.
4. 데이터가 읽거나 쓰일 때, socket은 블록된 상태에서 해제됩니다.
예를 들어, 블록킹 모드로 설정된 socket을 사용하여 데이터를 읽는 방법은 다음과 같습니다.
#hostingforum.kr
c
#include
#include
#include
#include
#include
#include
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket");
exit(1);
}
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(8080);
inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr);
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("connect");
exit(1);
}
if (socket_set_block(sock) < 0) {
perror("socket_set_block");
exit(1);
}
char buffer[1024];
ssize_t bytes_read = read(sock, buffer, 1024);
if (bytes_read < 0) {
perror("read");
exit(1);
}
printf("%sn", buffer);
return 0;
}
이 예제에서는 블록킹 모드로 설정된 socket을 사용하여 데이터를 읽는 방법을 보여줍니다. socket_set_block() 함수를 호출하여 socket을 블록킹 모드로 설정하고, read() 함수를 호출하여 데이터를 읽습니다.
2025-06-25 16:49