diff --git a/spartanTest.c b/spartanTest.c new file mode 100644 index 0000000..fd5132a --- /dev/null +++ b/spartanTest.c @@ -0,0 +1,66 @@ +#ifndef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200112L /* Required for networking struct addrinfo */ +#endif /* Unless using std=gnu89 or higher */ +#include +#include +#include +#include +#include +#include + +#define RESPONSESIZE 1024*1024*50 + +int main(int argc, char *argv[]) +{ + int status, sock; + char *request = "spartan.mozz.us / 0\r\n"; + char *response; + struct addrinfo hints; + struct addrinfo *servinfo; + + memset(&hints, 0, sizeof hints); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_flags = AI_PASSIVE; + + status = getaddrinfo("spartan.mozz.us", "300", &hints, &servinfo); + if(status != 0) { + fprintf(stderr, "gai error: %s\n", gai_strerror(status)); + exit(1); + } + + sock = socket(servinfo->ai_family, servinfo->ai_socktype, servinfo->ai_protocol); + if(sock == -1){ + fprintf(stderr, "Error obtaining socket\n"); + exit(1); + } + + status = connect(sock, servinfo->ai_addr, servinfo->ai_addrlen); + if(status == -1){ + fprintf(stderr, "Error connecting to host\n"); + exit(1); + } + + status = send(sock, request, strlen(request), 0); + if(status != strlen(request)){ + fprintf(stderr, "Error sending request\n"); + exit(1); + } + + response = malloc(RESPONSESIZE); + memset(response, 0, RESPONSESIZE); + do { + status = recv(sock, response, RESPONSESIZE, 0); + if(status == -1){ + fprintf(stderr, "Error receiving response from server\n"); + exit(1); + } else { + response[status] = '\0'; + printf("%s", response); + } + } while (status > 0); + + printf("Success!"); + + return 0; +}