gpt4 book ai didi

C 套接字编程,select() 和 fd_set 的问题

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

我正在学习用 C(指的是 Beej)进行套接字编程。

这是我尝试实现的一个简单的多用户聊天服务器: http://pastebin.com/gDzd0WqP

在运行时,它给出总线错误。它来自第 68-78 行。

帮我追查问题根源?

事实上,为什么我的代码甚至到达了那个特定区域?我刚刚运行服务器。没有客户端连接.. :@

ps - 我知道我的代码非常不可靠(任何地方都没有错误检查),但我会在稍后阶段这样做,我只想在实现它之前测试代码的功能;)

最佳答案

第 81 行

msg[MSG_SIZE] = '\0';` 

超出你的缓冲区。做到这一点

msg[MSG_SIZE - 1] = '\0';` 

您还需要检查所有可能失败的调用的返回值,即第 39、42、45、68 和 80 行

编辑:如果您检查了错误,您可能会看到 accept() 调用失败,这可能是由于套接字未处于监听模式 - 也就是说,您错过了对 的调用听()

关于C 套接字编程,select() 和 fd_set 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2540020/

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