我有两个变量:buf
和length
(char buf[BUFSIZE], int length
)。 Buf
包含使用UDP协议发送的DNS消息,length
中包含该消息的长度。现在我需要更改buf
以便我可以将它与TCP协议一起使用并将其发送到DNS服务器并获得响应,并将响应更改回UDP协议。
我知道我应该添加一些字节,然后删除一些字节,但我真的不知道哪一个。所以请帮忙,也请在C
中显示。
答案 0 :(得分:0)
您需要打开SOCK_STREAM类型的第二个套接字,然后使用send()发送buf
的内容:
sock = socket( AF_INET, SOCK_STREAM, 0 );
connect(...);
send( sock, buf, length, 0 );
这是有效的,因为在使用套接字时,通常不会获得协议头,只需要UDP / TCP有效负载。