-2

私には2つの変数があります:buflengthchar buf[BUFSIZE], int length)。BufUDPプロトコルで送信されたDNSメッセージが含まれlength、そのメッセージの長さがあります。buf次に、TCPプロトコルで使用してDNSサーバーに送信し、応答を取得して、その応答をUDPプロトコルに戻すことができるように変更する必要があります。

いくつかのバイトを追加してからいくつかのバイトを削除する必要があることはわかっていますが、実際にはどれかわかりません。ですから、助けてください、そしてそれCも見せてください。

4

1 に答える 1

0

タイプSOCK_STREAMの2番目のソケットを開き、send()を使用して次のコンテンツを送信する必要がありますbuf

sock = socket( AF_INET, SOCK_STREAM, 0 );
connect(...);
send( sock, buf, length, 0 );

これが機能するのは、ソケットを操作する場合、通常はプロトコルヘッダーを取得せず、UDP/TCPペイロードのみを取得するためです。

于 2012-11-14T21:31:58.330 に答える