gpt4 book ai didi

sockets - 从套接字读取时中断条件

转载 作者:行者123 更新时间:2023-12-03 12:04:16 25 4
gpt4 key购买 nike

我想从套接字读取数据流,并在服务器完成发送后停止读取。下面的代码从不运行else if(因为read显然不会读取0字节;))。从服务器获取所需内容后,如何中断或修改while循环以进行中断?

    while(1){
/* receive answer from server */
t = read(sock, output, MAX);
if (t > 0) {
puts("received smthn");
}
else if (t == 0) {
puts("***ITS OVER***");
} else {
printf("Connection with server terminated.\n");
exit(1);
}
}

最佳答案

为了使read函数返回0,服务器必须关闭其侧面的套接字(请参阅 close )。

如果服务器忘记在套接字上调用close,则可以在读取之前尝试查看是否已准备好在套接字上读取某些数据:请参见 select https://stackoverflow.com/a/36786740/1212012

关于sockets - 从套接字读取时中断条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37641654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com