Index: server/makefile
===================================================================
--- server/makefile	(revision ba43374fb921043bd4e8f4f2443dfc3d72ce7b67)
+++ server/makefile	(revision 6c92572a9378495e50dbbbed32b3bb3f4b02079b)
@@ -1,2 +1,2 @@
-server : server.cpp
+server : ../common/message.cpp server.cpp
 	g++ -o $@ $? -lssl -lmysqlclient
Index: server/server.cpp
===================================================================
--- server/server.cpp	(revision ba43374fb921043bd4e8f4f2443dfc3d72ce7b67)
+++ server/server.cpp	(revision 6c92572a9378495e50dbbbed32b3bb3f4b02079b)
@@ -1,2 +1,4 @@
+#include "../common/compiler.h"
+
 #include <sys/types.h>
 #include <stdlib.h>
@@ -14,4 +16,5 @@
 #include <openssl/ssl.h>
 #include <openssl/err.h>
+#include "../common/message.h"
 
 using namespace std;
@@ -29,5 +32,10 @@
    struct sockaddr_in server;
    struct sockaddr_in from;
-   char buf[1024];
+   NETWORK_MSG clientMsg, serverMsg;
+
+   srand(time(NULL));
+   int num = (rand() % 1000) + 1;
+
+   cout << "num: " << num << endl;
 
    SSL_load_error_strings();
@@ -48,14 +56,35 @@
    server.sin_port=htons(atoi(argv[1]));
    if (bind(sock,(struct sockaddr *)&server,length)<0) 
-       error("binding");
+      error("binding");
    fromlen = sizeof(struct sockaddr_in);
    while (1) {
-       n = recvfrom(sock,buf,1024,0,(struct sockaddr *)&from,&fromlen);
-       if (n < 0) error("recvfrom");
-       write(1,"Received a datagram: ",21);
-       write(1,buf,n);
-       n = sendto(sock,"Got your message\n",17,
-                  0,(struct sockaddr *)&from,fromlen);
-       if (n  < 0) error("sendto");
+      n = receiveMessage(&clientMsg, sock, &from);
+      if (n < 0)
+         error("recieveMessage");
+      cout << "msg: " << clientMsg.buffer << endl;
+
+      if (strcmp(clientMsg.buffer, "Hello"))
+      {
+         strcpy(serverMsg.buffer, "I'm thinking of a number between 1 and 1000. Guess what it is.");
+      }else {
+         int guess = atoi(clientMsg.buffer);
+
+         if (guess < 1 || guess > 1000) {
+            strcpy(serverMsg.buffer, "You must guess a number between 1 and 1000");
+         }else if(guess > num)
+            strcpy(serverMsg.buffer, "The number I'm thinking of is less than that.");
+         else if(guess < num)
+            strcpy(serverMsg.buffer, "The number I'm thinking of is greater than that.");
+         else if(guess == num) {
+            strcpy(serverMsg.buffer, "Congratulations! I will now think of a new number.");
+            num = (rand() % 1000) + 1;
+         }	
+      }
+
+      cout << "msg: " << serverMsg.buffer << endl;
+
+      n = sendMessage(&serverMsg, sock, &from);
+      if (n  < 0)
+         error("sendMessage");
    }
    return 0;
