-2

我有两个变量:buflengthchar buf[BUFSIZE], int length)。Buf包含使用 UDP 协议发送的 DNS 消息,其中包含length该消息的长度。现在我需要进行更改buf,以便可以将其与 TCP 协议一起使用并将其发送到 DNS 服务器并获得响应,然后该响应将更改回 UDP 协议。

我知道我应该添加一些字节,然后删除一些字节,但我真的不知道是哪一个。所以请帮忙,也请把它展示出来C

4

1 回答 1

0

您需要打开 SOCK_STREAM 类型的第二个套接字,然后使用 send() 发送以下内容buf

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

这是有效的,因为在使用套接字时,您通常不会获得协议标头,而只会获得 UDP/TCP 有效负载。

于 2012-11-14T21:31:58.330 回答