В этой строке:
if(recvfrom( temp->sockfd, sendHostIP, BUFFER_LEN, 0, (struct sockaddr *)&recvAddr, &recvLen) < 0)
errorMsg("recvfrom");
Вы передаете BUFFER_LEN
как длину (256), но sendHostIP
имеет только длину MAXHOSTNAMELEN
(64).
Этозаставляет recvfrom()
переполнять этот буфер.Та же проблема возникает, когда вы читаете в localHostIP
.