gpt4 book ai didi

c - 使用 EOF 多路复用非阻塞套接字 IO

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:57 26 4
gpt4 key购买 nike

我正在使用 linux select 实现一个非阻塞套接字 IO react 器。比方说,服务器和客户端正在通信。如果客户端或服务器宕机,另一端应该收到一个 EOF,这可以通过 read 调用(C 函数调用)的返回值来判断。

if(read(fd, ...) == 0) { printf("Endpoint connection failed\n"); }

我的问题是,这个EOF事件是否会与其他读取的数据重叠或合并?例如,客户端向服务器发送1字节,不小心立即关机。如果它们发生的时间非常接近,服务器上的 read 是否仍可分离为 1 字节EOF

最佳答案

如果另一端发送一个字节然后关闭连接,那么你将首先读取一个字节,然后 next 调用 read 将返回 0。

单个 read 调用无法同时执行这两项操作 - 因为它必须返回 0 以指示关闭,如果它读取了一些数据则必须返回非 0。

关于c - 使用 EOF 多路复用非阻塞套接字 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36994677/

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