-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimple-client-experiment.c
More file actions
85 lines (72 loc) · 2.16 KB
/
simple-client-experiment.c
File metadata and controls
85 lines (72 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//
// Created by dran on 4/9/22.
//
//
// let's try and send predetermined string to server
// Created by dran on 2/2/22.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#define MAX_BUFFER_SIZE 1024
#define DEBUG 1
#define SUCCESS 0
#define FAIL 1
char REQUEST[] = "GET / HTTP/1.1\r\n"
"Host: foo.prinmath.com\r\n"
"Accept: */*\r\n"
"User-Agent: DavidsAutomation\r\n\r\n";
//char REQUEST[] = "HELLO\r\n";
struct message {
int num;
char str[64];
};
int main(int argc, char* argv[]) {
int ret_status;
int socket_fd;
struct addrinfo server_address_hints;
struct addrinfo* server_address;
char buffer[MAX_BUFFER_SIZE];
// if (argc != 3) {
// printf("usage: %s <servername> <port>\n", argv[0]);
// return 1;
// }
socket_fd = socket(AF_INET, SOCK_STREAM, 0);
if (socket_fd == -1) {
printf("error: unable to create socket\n");
return 1;
}
server_address_hints.ai_family = AF_INET;
server_address_hints.ai_socktype = SOCK_STREAM;
ret_status = getaddrinfo("foo.prinmath.com", "http", &server_address_hints, &server_address);
if (ret_status != 0) {
printf("resolved address status: %d error:%s\n", ret_status, strerror(errno));
return 1;
}
ret_status = connect(socket_fd, server_address->ai_addr, server_address->ai_addrlen);
printf("connected : %d\n", socket_fd);
ret_status = send(socket_fd, REQUEST, strlen(REQUEST), 0);
if (ret_status == -1) {
printf("error: failed to send to server\n");
return 1;
} else {
memset(buffer, 0, MAX_BUFFER_SIZE);
}
printf("request sent: %d\n%s\n",ret_status, REQUEST);
ret_status = recv(socket_fd, buffer, MAX_BUFFER_SIZE, 0);
if (ret_status == -1) {
printf("error: failed to receive from server\n");
return 1;
} else {
buffer[ret_status] = '\0';
printf("echoed from server:\nbytes:%d\n%s\n", ret_status, buffer);
}
freeaddrinfo(server_address);
close(socket_fd);
printf("congrats!\n");
return 0;
}