1

編集:このプロジェクトが再び与えられ、学生がこの投稿を介して解決策を簡単に見つけることができるため、コード/説明を削除しました。

何が起こったのかを明確にするために、recvfrom()呼び出しで間違った長さ/サイズを渡しただけです。

4

1 に答える 1

1

この行で:

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

BUFFER_LEN長さ(256)として渡しますが、長さ(64)sendHostIPのみです。MAXHOSTNAMELEN

これによりrecvfrom()、そのバッファがオーバーフローします。に読み込んだときにも同じ問題が発生しますlocalHostIP

于 2011-02-21T06:32:11.927 に答える