Skip to content

Commit 1db6298

Browse files
committed
Add MTU to first packet
1 parent b241073 commit 1db6298

File tree

4 files changed

+9
-21
lines changed

4 files changed

+9
-21
lines changed

src/Config.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
std::string fileName;
77
int mtu; // Max packet size to send and receive
88

9-
std::atomic<int> ttl; // Max time to wait new packets
9+
int ttl; // Max time to wait new packets
1010
int ttl_max;
1111

1212
SOCKET _socket;

src/Receiver.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void checkParts() {
5050
void run(cxxopts::ParseResult &options) {
5151
bool finish = false; // Sender finish transfering
5252

53-
char* buffer = new char[2 * mtu];
53+
char* buffer;
5454

5555
while (auto length = recvfrom(_socket, buffer, 2 * mtu, 0, (sockaddr*) &server_address, &server_address_length)) {
5656
// Sender is no longer available
@@ -65,9 +65,10 @@ void run(cxxopts::ParseResult &options) {
6565

6666
if (strncmp(buffer, "NEW_PACKET", 10) == 0) {
6767
file_length = Utils::getIntFromBytes(buffer + 10, 4);
68+
mtu = Utils::getIntFromBytes(buffer + 14, 4);
6869

70+
buffer = new char[2 * mtu];
6971
file = new char[file_length];
70-
memset(file, 0, file_length);
7172

7273
std::cout << "Receive information about new file size: " << file_length << std::endl;
7374
std::cout << "Part count: " << int((float)file_length / (float)mtu + 0.5) << std::endl;

src/Sender.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ void run(cxxopts::ParseResult &options) {
4242

4343

4444
snprintf(buffer, 11, "NEW_PACKET"); //
45-
Utils::writeBytesFromInt(buffer + 10, file_length, 4); // Send information
45+
Utils::writeBytesFromInt(buffer + 10, file_length, 4); //
46+
Utils::writeBytesFromInt(buffer + 14, mtu, 4); // Send information
4647
sendto(_socket, buffer, 14, 0, (sockaddr*) &broadcast_address, // about new file
47-
sizeof(broadcast_address)); //
48-
std::cout << "Send information about new file with size " << (int) file_length << std::endl;
48+
sizeof(broadcast_address)); // + size and mtu
49+
std::cout << "Send information about new file with size "; //
50+
std::cout << (int) file_length << " mtu " << mtu <<std::endl; //
4951

5052
int part_index = 0;
5153

src/Utils.hpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@
3333
#include "../lib/cxxopts/include/cxxopts.hpp"
3434
#include "Config.hpp"
3535

36-
#define _WINSOCK_DEPRECATED_NO_WARNINGS
37-
#define async
38-
3936

4037
using namespace std::chrono_literals;
4138

@@ -67,18 +64,6 @@ namespace Utils {
6764
buffer[count - i - 1] = (char) (value >> (i * 8));
6865
}
6966
}
70-
71-
/**
72-
* Run in secondary thread
73-
* Decrease ttl every second
74-
* If ttl < 0 program should stop
75-
*/
76-
void async checkTTL() {
77-
while (ttl--) {
78-
std::this_thread::sleep_for(1s);
79-
}
80-
std::cout << "Process no longer be working" << std::endl;
81-
}
8267
}
8368

8469
#endif //FILEBROADCASTER_UTILS_H

0 commit comments

Comments
 (0)