【发布时间】:2019-12-07 04:02:37
【问题描述】:
我想构建一个 while 循环,无论是否发送了消息,它都可以从非阻塞套接字连续读取。我使用 read 函数从套接字读取,但是当它到达 read() 时,while 循环被阻塞。我还需要使读取成为非阻塞吗?
while(1){
char client_response[256];
client_response = (char*) malloc(256);
int reader = read(socket_fd, server_response, sizeof(server_response));
printf("passed reader\n"); // this never shows
if(reader < 0){
perror("read fails\n");
return -1;
}
sleep(1);
}
【问题讨论】:
-
哪个操作系统?它有所作为。
-
我很难相信您将从
malloc返回的指针分配给一个固定大小的数组不会导致编译错误。 -
你能告诉我们设置套接字非阻塞的代码吗?
标签: c