gpt4 book ai didi

c++ - C/C++ 服务器不发送最后几行文件

转载 作者:行者123 更新时间:2023-11-28 07:46:49 27 4
gpt4 key购买 nike

我正在用 C/C++ 编写一个简单的服务器。我已经基本完成了所有事情,但是有一个问题。服务器无法将文件的最后三行发送到客户端。我假设我过早地关闭了套接字连接,但我尝试补救这个问题的尝试失败了。例如调用

shutdown(clientSckt, SHUT_RDWR);

就在为客户端套接字调用 close() 方法之前。并像这样向套接字参数添加延迟:

struct linger l;
l.l_onoff = 1;
l.l_linger = 1;
setsockopt(clientSckt, SOL_SOCKET, SO_LINGER, &l, sizeof(l));

打开之后。但这些似乎都不起作用。服务器无误地写入所有内容,但客户端并未收到所有内容。

最佳答案

从模糊的内存中:a) 如果你想使用 SO_LINGER,使用 close()。b) 更健壮的是半关机

shutdown(clientSckt, SHUT_WR)

然后 read() 直到得到 0。

关于c++ - C/C++ 服务器不发送最后几行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764663/

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