1 #include "../src/kernel/mptp.h"
3 #include <sys/socket.h>
7 #include <netinet/in.h>
11 #define ADDR 0x80BEA8C0
12 #define DADDR 0x81BEA8C0
14 int main(int argc, const char *argv[])
18 sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_MPTP);
20 perror("Failed to create socket");
24 int size = sizeof(struct sockaddr_mptp) + sizeof(struct mptp_dest);
25 struct sockaddr_mptp *saddr = malloc(size);
26 memset(saddr, 0, size);
29 saddr->dests[0].addr = ADDR;
30 saddr->dests[0].port = 50;
32 if (bind(sock, (struct sockaddr *) saddr, size) < 0) {
33 perror("Failed to bind socket");
38 int fd = open("large_file", O_RDONLY);
40 perror("Failed to open file");
48 int size2 = sizeof(struct sockaddr_mptp) + 2 * sizeof(struct mptp_dest);
49 struct sockaddr_mptp *to = malloc(size2);
51 memset(&msg, 0, sizeof(msg));
52 memset(&iov, 0, sizeof(iov));
55 iov[0].iov_base = buf;
56 iov[1].iov_base = buf;
59 to->dests[0].addr = DADDR;
60 to->dests[0].port = 100;
61 to->dests[1].addr = DADDR;
62 to->dests[1].port = 101;
67 msg.msg_namelen = size2;
72 ret = read(fd, buf, 8192, 0);
76 perror("Failed to read from file");
82 ret = sendmsg(sock, &msg, sizeof(msg));
84 perror("Failed to send on socket");
88 printf("Sent %d bytes on socket\n", msg.msg_namelen);
91 if (close(sock) < 0) {
92 perror("Failed to close socket");