80 lines
1.9 KiB
C++
80 lines
1.9 KiB
C++
#include <algorithm>
|
|
#include <arpa/inet.h>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
#include <cstring>
|
|
#include <ctime>
|
|
#include <netinet/in.h>
|
|
#include <sys/socket.h>
|
|
#include <csignal>
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <tuple>
|
|
#include <unistd.h>
|
|
|
|
|
|
int makeSocket() {
|
|
int sockfd;
|
|
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
|
|
perror("socket failed");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
return sockfd;
|
|
}
|
|
|
|
void connectTo(int sock, const char* host, int port) {
|
|
struct sockaddr_in serv_addr;
|
|
serv_addr.sin_family = AF_INET;
|
|
serv_addr.sin_addr.s_addr = inet_addr(host);
|
|
serv_addr.sin_port = htons(port);
|
|
|
|
if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
|
|
perror("Connection failed");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
printf("Connected to %s: %d\n", host, port);
|
|
}
|
|
|
|
int main(int argc, char* argv[]) {
|
|
|
|
if (argc != 2) {
|
|
printf("Usage: ./prov.out timeout (ms)");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
int timeout = atoi(argv[1]);
|
|
//printf("Selected timeout: %f", static_cast<double>(timeout) / 1000);
|
|
|
|
int socket = makeSocket();
|
|
connectTo(socket, "127.0.0.1", 7777);
|
|
|
|
//allocating 100 megabytes of memory
|
|
uint64_t* chunky_boy = new uint64_t[67108];
|
|
size_t chunky_boy_size = 67108 * sizeof(uint64_t);
|
|
printf("chonky size %d", static_cast<int>(chunky_boy_size));
|
|
|
|
//setting memory to verify non-emptyness
|
|
memset(chunky_boy, 45678, chunky_boy_size);
|
|
|
|
int buffer_size = 1024 * 32;
|
|
|
|
|
|
for ( ;;) {
|
|
|
|
for ( int j = 0; j < chunky_boy_size; ) {
|
|
|
|
ssize_t bytes = send(socket, reinterpret_cast<char*>(chunky_boy) + j, std::min(static_cast<int>(chunky_boy_size) - j, buffer_size), 0);
|
|
if (timeout != 0) {
|
|
sleep(static_cast<double>(timeout) / 1000);
|
|
}
|
|
j += buffer_size;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
} |