---
name: "ldns_tcp_send_query"
section: "3"
platform: "linux"
package: "ldns"
version: "1.9.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ldns_tcp_send_query"
---

# ldns\_tcp\_send\_query(3)

tcp queries

## NAME

ldns\_tcp\_send\_query, ldns\_tcp\_read\_wire, ldns\_tcp\_connect - tcp queries

## SYNOPSIS

\#include \<stdint.h\>\
 \#include \<stdbool.h\>\

\#include \<ldns/ldns.h\>

ssize\_t ldns\_tcp\_send\_query(ldns\_buffer \*qbin, int sockfd, const struct sockaddr\_storage \*to, socklen\_t tolen);

uint8\_t\* ldns\_tcp\_read\_wire(int sockfd, size\_t \*size);

int ldns\_tcp\_connect(const struct sockaddr\_storage \*to, socklen\_t tolen, struct timeval timeout);

## DESCRIPTION

*ldns\_tcp\_send\_query*() send a query via tcp to a server. Don't want for the answer

.br **qbin**: the buffer to send .br **sockfd**: the socket to use .br **to**: which ip to send it .br **tolen**: socketlen .br Returns number of bytes sent

*ldns\_tcp\_read\_wire*() This routine may block. Use ldns\_tcp\_read\_wire\_timeout, it checks timeouts. Gives back a raw packet from the wire and reads the header data from the given socket. Allocates the data (of size size) itself, so don't forget to free

.br **sockfd**: the socket to read from .br **size**: the number of bytes that are read .br Returns the data read

*ldns\_tcp\_connect*() Create a tcp socket to the specified address This function has the flaw that it returns 0 on failure, but 0 could be a valid socket.  Please use ldns\_tcp\_connect2 instead of this function. .br **to**: ip and family .br **tolen**: length of to .br **timeout**: timeout for the connect attempt .br Returns a socket descriptor or 0 on failure

## AUTHOR

The ldns team at NLnet Labs.

## REPORTING BUGS

Please report bugs to dns-team@nlnetlabs.nl or on GitHub at https://github.com/NLnetLabs/ldns/issues

## COPYRIGHT

Copyright (c) 2004 - 2006 NLnet Labs.

Licensed under the BSD License. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO

*ldns\_send*, *ldns\_pkt*, *ldns\_resolver*. And **perldoc Net::DNS**, **RFC1034**, **RFC1035**, **RFC4033**, **RFC4034**  and **RFC4035**.

## REMARKS

This manpage was automatically generated from the ldns source code.
