NetworkServer.cc finally works as intended
authorterom
Wed, 05 Nov 2008 22:29:31 +0000
changeset 14 22e3bfb6720d
parent 13 3fbb927c6a27
child 15 7710cce889b2
NetworkServer.cc finally works as intended
src/proto2/NetworkServer.cc
src/proto2/NetworkServer.hh
--- a/src/proto2/NetworkServer.cc	Wed Nov 05 22:06:31 2008 +0000
+++ b/src/proto2/NetworkServer.cc	Wed Nov 05 22:29:31 2008 +0000
@@ -1,10 +1,10 @@
 #include "NetworkServer.hh"
 
 #include <iostream>
+#include <cassert>
 
 NetworkServer::NetworkServer (GameState *state, const CL_IPAddress &listen_ip) : NetworkBase(), state(state) {
 	socket.bind(listen_ip);
-	socket.listen(NETWORK_SERVER_BACKLOG);
 	
 	// add socket to listener
 	listener.add_trigger(socket.get_read_trigger());
@@ -26,6 +26,7 @@
 	while (isRunning) {
 		/* XXX: all I need to do? */
 		listener.wait();
+		CL_System::keep_alive();
 		listener.reset_all();
 	}
 }
@@ -35,9 +36,13 @@
 	CL_IPAddress src;
 	int ret;
 
+	std::cout << "NetworkServer::_onRecv: recv" << std::endl;
+
 	ret = socket.recv((void*) buf, NETWORK_PACKET_MAX, src);
-	
-	std::cout << src.get_address() << ":" << src.get_port() << " <- " << std::string(buf, NETWORK_PACKET_MAX) << std::endl;
+
+	assert(ret > 0);
+
+	std::cout << src.get_address() << ":" << src.get_port() << " <- " << std::string(buf, ret) << std::endl;
 }
 		
 NetworkServerClient::NetworkServerClient (NetworkServer &server) : server(server) {
@@ -46,9 +51,13 @@
 		
 void runNetworkServer (void) {
 	NetworkServer *server = NULL;
-
-	server = NetworkServer::newServer();
-	server->run();
+	
+	try {
+		server = NetworkServer::newServer();
+		server->run();
+	} catch (CL_Error &e) {
+		std::cerr << "runNetworkServer: CL_Error: " << e.message << std::endl;
+	}
 }
 
 int main (int argc, char **argv) {
--- a/src/proto2/NetworkServer.hh	Wed Nov 05 22:06:31 2008 +0000
+++ b/src/proto2/NetworkServer.hh	Wed Nov 05 22:29:31 2008 +0000
@@ -8,8 +8,6 @@
 #include <map>
 #include <ClanLib/core.h>
 
-#define NETWORK_SERVER_BACKLOG 8
-
 // forward-declare
 class NetworkServerClient;