gpt4 book ai didi

c++ - 使用 WSARecv() 和 IOCP 时如何知道套接字何时收到 FIN 数据包?

转载 作者:行者123 更新时间:2023-11-30 05:46:28 25 4
gpt4 key购买 nike

当使用阻塞套接字和recv()函数时,当套接字收到FIN数据包时,recv()将返回0 .

但是,在使用 WSARecv() 和 IOCP 时,如何知道套接字何时收到 FIN 数据包?我认为 lpNumberOfBytesRecvd 也将设置为 0,但我不确定。

最佳答案

如果 WSARecv() 调用在 FIN 到达时正在进行,那么您将成功完成并将 lpNumberOfBytesRecvd 设置为 0。

如果 WSARecv() 调用在 FIN 到达后启动,那么您可能会从 WSARecv( ) 调用。

当我获得第一个“客户端关闭”(即零字节读取返回)时,我倾向于在套接字上发出 shutdown(s, SD_RECEIVE),因为这会给出上述可预测的行为并避免通过 IOCP 进行后续尝试接收...

关于c++ - 使用 WSARecv() 和 IOCP 时如何知道套接字何时收到 FIN 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28899026/

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