11 int server_fd, client_fd;
12 struct sockaddr_in addr;
13 socklen_t addrlen =
sizeof(addr);
14 char response[] =
"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 13\r\nConnection: close\r\n\r\nHello, world!";
16 server_fd = socket(AF_INET, SOCK_STREAM, 0);
23 setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt,
sizeof(opt));
25 addr.sin_family = AF_INET;
26 addr.sin_addr.s_addr = INADDR_ANY;
27 addr.sin_port = htons(port);
29 if (bind(server_fd, (
struct sockaddr*)&addr,
sizeof(addr)) < 0) {
35 if (listen(server_fd, 1) < 0) {
41 printf(
"Serving on port %d...\n", port);
43 client_fd = accept(server_fd, (
struct sockaddr*)&addr, &addrlen);
48 send(client_fd, response,
sizeof(response) - 1, 0);