编辑:删除了代码/说明,因为此项目已经再次发布,学生可以通过这篇文章轻松找到解决方案。
为了澄清发生的事情,我只是在我的recvfrom()调用中传递了错误的长度/大小。
答案 0 :(得分:1)
在这一行:
if(recvfrom( temp->sockfd, sendHostIP, BUFFER_LEN, 0, (struct sockaddr *)&recvAddr, &recvLen) < 0)
errorMsg("recvfrom");
您将BUFFER_LEN
作为长度(256)传递,但sendHostIP
的长度仅为MAXHOSTNAMELEN
(64)。
这会导致recvfrom()
溢出该缓冲区。当您阅读localHostIP
时会出现同样的问题。