gpt4 book ai didi

c - 如何停止从套接字读取

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:32 25 4
gpt4 key购买 nike

我很迷茫。我不知道如何停止从服务器读取。我基本上是将目录中每个文件的列表从服务器发送到客户端。这就是我正在做的。

服务器端:

 struct dirent *ep = readdir(dp);      
while( ep ){
sprintf(buf, "%s", (ep->d_name));
n = write(newsock, buf, MAX );
ep = readdir(dp);
}

客户端:

while( n = read(sock, buf, MAX)){
printf("buf: %s\n" , buf);
}

所以服务器端的东西工作正常。我可以看到我正在正确发送所有文件名,但在客户端它读取了所有名称但只是等待阅读更多内容。

最佳答案

您要么需要从服务器发送一些“EOF”指示符以便客户端知道要中断循环,要么让服务器关闭套接字(在允许“一段时间”让客户端读取所有数据之后)。这将导致读取以错误条件退出。

从表面上看,第二个更容易,第一个可能更可靠和高效。恭喜,您现在已经构建了您的第一个通信协议(protocol)。

关于c - 如何停止从套接字读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118722/

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