gpt4 book ai didi

c - 非法内存写入导致 recv() 返回零

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

我以某种方式与套接字断开连接,或者至少从 recv() 返回的值为零。从似乎触发问题的原因来看,我认为这是越界内存写入。但是,我正在输出我的套接字的值并且它没有被破坏。

有没有一种方法可以在不调用 recv() 的情况下检测到“断开连接”(因为我已经调用它来读取字节,我正在寻找可以在整个代码中查询的内容以准确检测“断开连接”的时间发生)?

recv() 是否可能由于非法内存写入而返回零,但套接字描述符值保持不变?

最佳答案

recv 的返回值 0 表示 EOF,即对等方已关闭其连接端(或至少通过 shutdown 关闭它以进行写入)。我看不出有任何理由相信它应该与您这边的内存破坏有关; recv 通常是一个非常薄的系统调用包装器,即使您的程序调用了未定义的行为,您在用户空间中所做的任何事情都不太可能影响它的行为。

关于c - 非法内存写入导致 recv() 返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38357522/

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