[英]Socket Descriptor Changed After Call to recvfrom
編輯:刪除了代碼/解釋,因為該項目已被再次給出,學生可以通過這篇文章輕松地找到解決方案。
為了弄清楚發生了什么,我只是在recvfrom()調用中傳遞了錯誤的長度/大小。
在這一行:
if(recvfrom( temp->sockfd, sendHostIP, BUFFER_LEN, 0, (struct sockaddr *)&recvAddr, &recvLen) < 0)
errorMsg("recvfrom");
您將BUFFER_LEN
作為長度(256)傳遞,但是sendHostIP
的長度僅為MAXHOSTNAMELEN
(64)。
這導致recvfrom()
溢出該緩沖區。 當您讀入localHostIP
時,會發生相同的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.