diff -r 22e3bfb6720d -r 7710cce889b2 src/proto2/NetworkServer.cc --- 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 #include @@ -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) {