diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..61d6259
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+CXX=g++
+CXXFLAGS=-Wall -Wextra -Werror -pedantic -std=c++14 -O2
+CXXLIBS=-lpthread
+
+OBJS = Bytes.o main.o protocol.o
+TARGET = jeanhubert
+
+all: $(TARGET)
+
+$(TARGET): $(OBJS)
+ $(CXX) $(CXXLIBS) $(CXXFLAGS) $^ -o $@
+
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+clean:
+ rm -rf $(OBJS) $(TARGET)
diff --git a/main.cpp b/main.cpp
index be9bae1..98e9549 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,10 +4,38 @@
* License: WTFPL v2
**************************************************************************/
-#include "nw_constants.h"
#include "data.h"
+#include "protocol.h"
+#include "nw_constants.h"
+#include
+#include
+#include
-int main(int argc, char** argv) {
- //TODO read arguments
+int main(int /*argc*/, char** /*argv*/) {
+ srand(time(NULL)+42);
+
+ SockAddr addr;
+ memset(&addr, 0, sizeof(addr));
+ addr.sin6_family = AF_INET6;
+ addr.sin6_port = csts::DEFAULT_PORT;
+
+ u64 myId=0;
+ for(int i=0; i < 8; i++) {
+ myId <<= 8;
+ myId += rand() % (1<<8);
+ }
+
+ SockAddr jch_addr;
+ memset(&jch_addr, 0, sizeof(jch_addr));
+ jch_addr.sin6_family = AF_INET6;
+ jch_addr.sin6_port = csts::DEFAULT_PORT;
+ if(inet_pton(AF_INET6, "::ffff::81.194.27.155", &jch_addr.sin6_addr)) {
+ perror("Cannot convert JCh address");
+ exit(1);
+ }
+
+ Protocol proto(addr, myId);
+ proto.sendEmpty(jch_addr);
+ return 0;
}