c - c recv 直到返回零
问题描述
在我的客户端代码(我也控制服务器代码)中,我想做这样的事情;
while( (result = recv(sock_fd, in_buff, SRV_BUFF_SIZE, 0)) >= 0 )
{
// do something with in_buff
}
printf("Exited recv loop with result = %i\n", result);
但当然recv
永远不会返回零,除非服务器关闭套接字。
服务器有没有办法发送一些说服recv
退出的东西?我不认为我应该一直打开和关闭套接字(似乎很浪费)。
解决方案
推荐阅读
- nlp - Pos Tag Lemmatize 仅在输出中给出一行
- angular - Angular,HttpClient将获取响应转换为数字
- scala - 如何在 .mapParallelUnordered 中处理错误并使 Observable 保持活动状态
- jquery - 为什么这在 jQuery UI 3.3.1 或 1.9.1 中都不起作用,而只在 1.9.2 中起作用?
- excel - 使用 VBA 将多个 CSV 文件导入 Excel 中的单个工作表(目前只能做 1 个)
- php - 如何修复 Magento-1.9.4 中的“无法将 VCL 应用到 127.0.0.1:6082:无法从 Varnish 读取响应代码”错误
- regex - 正则表达式仅匹配“第 1 组”。而不是“完全匹配”
- azure - 使用客户端凭据流,无需从同一租户内的任何应用程序委托访问即可生成访问令牌
- mariadb - 寻求仅在一个 DC 中实施备份的解决方案
- amazon-web-services - 使用 AWS SQS 的最有效方式(使用 Golang)