Removed submodules

This commit is contained in:
2026-05-31 14:34:00 -04:00
commit 46c36b11da
352 changed files with 14792 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
Answer the following questions to describe your code submission. Please keep
all lines to a maximum of 80 characters wide.
1 - Your implementation must send an array of bytes to the server. Explain the
meaning of these bytes and how the server interprets them.
The bytes we send form a complete DNS request, which is hardcoded. The first
12 bytes make up the DNS header, which includes a transaction ID, flags, and
counts of questions, answers, authority, and additional records. After the
header, we include the question section, which specifies the domain name
(which is a 0 length label which mean root server), the record type (A = IPv4),
and the class (IN = Internet). The server interprets these bytes as a query
asking for the IPv4 address of the root domain, and responds with the A
record containing the IP address of one of the root servers a.root-servers.net.
or b.root-servers.net.
2 - Show (in pseudocode) how you set up your socket to send your message,
including a description of how you specified the address and port number.
What would you have to change to send an HTTP message (which uses TCP) to
a server?
const char *hostname = "127.0.0.1";
const char *port = get_port ();
struct addrinfo *server_list
= get_server_list (hostname, port, false, false);
int sockfd = socket (server_list->ai_family, server_list->ai_socktype, 0);
We do this to specify the hostname and port.
To send an HTTP message to a server we would hardcode the port to be 80
and create the socket using SOCK_STREAM. We would have to call connect() to
establish the TCP handshake and then use send() to send the query and recv()
to get the response.