c - 套接字描述符在调用 recvfrom 后更改

标签 c network-programming udp recv

编辑:删除了代码/解释,因为这个项目已经再次给出,学生可以通过这篇文章轻松找到解决方案。

为了澄清发生了什么,我只是在我的 recvfrom() 调用中传递了错误的长度/大小。

最佳答案

在这一行中:

if(recvfrom( temp->sockfd, sendHostIP, BUFFER_LEN, 0, (struct sockaddr *)&recvAddr, &recvLen) < 0)
    errorMsg("recvfrom");

您传递 BUFFER_LEN 作为长度 (256),但 sendHostIP 的长度仅为 MAXHOSTNAMELEN (64)。

这会导致 recvfrom() 溢出该缓冲区。当您读入 localHostIP 时会出现同样的问题。

关于c - 套接字描述符在调用 recvfrom 后更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062723/

相关文章:

c - 有没有让我查看下一个字符的函数?

c - 如何重新启动计时器?

javascript - 有没有办法为 node.js 的 golang 库创建绑定(bind)?

java - 通过 UDP 传输字节缓冲区

c - Huffman with C ,分段默认(核心转储)

c++ - 哪个维基解析器?

c++ - Boost ASIO 缓冲不工作

c++ - 通过 Boost TCP 发送大量数据?

android - 最快的服务器客户端通信?

c - 使用sento()传递结构