--- a/src/proto2/NetworkServer.cc Wed Nov 05 22:29:31 2008 +0000
+++ b/src/proto2/NetworkServer.cc Thu Nov 06 22:23:59 2008 +0000
@@ -1,4 +1,5 @@
#include "NetworkServer.hh"
+#include "Protocol.hh"
#include <iostream>
#include <cassert>
@@ -32,17 +33,28 @@
}
void NetworkServer::_onRecv (void) {
- char buf[NETWORK_PACKET_MAX];
- CL_IPAddress src;
- int ret;
+ NetworkPacket pkt;
- std::cout << "NetworkServer::_onRecv: recv" << std::endl;
+ pkt.recvFromSocket(socket);
- ret = socket.recv((void*) buf, NETWORK_PACKET_MAX, src);
+ std::cout << pkt.src.get_address() << ":" << pkt.src.get_port() << " <- ";
+
+ enum packet_type type = pkt.read_pkt_type();
- assert(ret > 0);
+ switch (type) {
+ case PKT_HELLO:
+ {
+ pkt_Hello hello(pkt);
- std::cout << src.get_address() << ":" << src.get_port() << " <- " << std::string(buf, ret) << std::endl;
+ std::cout << "\tPKT_HELLO: " << hello.player_id << std::endl;
+ } break;
+
+ default:
+ {
+ std::cout << "\t???:" << type << std::endl;
+
+ } break;
+ }
}
NetworkServerClient::NetworkServerClient (NetworkServer &server) : server(server) {