c - 如何在不阻塞事件循环的情况下将前一个 http 请求排队并读取另一个请求?
问题描述
事件循环如下所示:
while(1)
{
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0)
{
perror("In accept");
exit(EXIT_FAILURE);
}
char buffer[30000] = {0};
valread = read( new_socket , buffer, 30000);
printf("%s\n",buffer );
}
我打算将之前的 http 请求排队。然后在以后使用
write(new_socket , hello , strlen(hello));
close(new_socket);
但是,只要我不写就读它,我就会被阻塞,所以我无法获取新传入的 http 并将前一个传入队列。实现已经读取的http队列的正确方法是什么?
解决方案
推荐阅读
- docker - 如何使用 docker 基于外部文件指定 .env 文件变量
- java - 如何使用 Android/Java HTTP POST 参数?
- android - 即使应用程序未运行,如何持续更新通知?
- javascript - 在按下另一个按钮时触发鼠标点击
- python - 熊猫数据框除以非零时返回“inf”
- javascript - 将数组中的 ID(字符串)替换为对另一个数组中完整对象的引用
- shell - AWS S3 命令中的多字节字符支持?(正在使用“ascii”编解码器)
- react-native - 扩展组件
vs 扩展了 React.Component - python - 将具有重复值的键存储到字典中
- html - 为什么将宽度和高度设置为百分比值后不再显示圆圈?