Skip to content

Instantly share code, notes, and snippets.

@ethernet8023
Created July 21, 2014 12:40
Show Gist options
  • Select an option

  • Save ethernet8023/d6cedbc1cf285101c1f4 to your computer and use it in GitHub Desktop.

Select an option

Save ethernet8023/d6cedbc1cf285101c1f4 to your computer and use it in GitHub Desktop.
#define SERVER_HOST ENET_HOST_ANY
#define SERVER_PORT 5119
int main(int argc, char ** argv)
{
Logging->writeLine("IntWars %s\n",SERVER_VERSION);
NetworkListener *listener = new NetworkListener();
ENetAddress address;
address.host = SERVER_HOST;
address.port = SERVER_PORT;
listener->initialize(&address);
Logging->writeLine("Starting net loop\n");
listener->netLoop();
delete listener;
Logging->writeLine("Goodbye\n");
}
bool NetworkListener::initialize(ENetAddress *address, const char *baseKey)
{
if (enet_initialize () != 0)
return false;
atexit(enet_deinitialize);
_server = enet_host_create(address, 32, 0, 0);
if(_server == NULL)
return false;
return _isAlive = true;
}
void NetworkListener::netLoop()
{
ENetEvent event;
while(enet_host_service(_server, & event, 10) >= 0 && _isAlive)
{
switch (event.type)
{
case ENET_EVENT_TYPE_CONNECT:
Logging->writeLine("A new client connected: %i.%i.%i.%i:%i \n", event.peer->address.host & 0xFF, (event.peer->address.host >> 8) & 0xFF, (event.peer->address.host >> 16) & 0xFF, (event.peer->address.host >> 24) & 0xFF, event.peer->address.port);
/* Set some defaults */
event.peer->mtu = PEER_MTU;
break;
case ENET_EVENT_TYPE_RECEIVE:
Logging->writeLine("Recieved packet!");
/* Clean up the packet now that we're done using it. */
enet_packet_destroy (event.packet);
break;
case ENET_EVENT_TYPE_DISCONNECT:
Logging->writeLine("Client disconnected: %i.%i.%i.%i:%i \n", event.peer->address.host & 0xFF, (event.peer->address.host >> 8) & 0xFF, (event.peer->address.host >> 16) & 0xFF, (event.peer->address.host >> 24) & 0xFF, event.peer->address.port);
/* Cleanup */
delete (ClientInfo*)event.peer->data;
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment