Created
July 21, 2014 12:40
-
-
Save ethernet8023/d6cedbc1cf285101c1f4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #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"); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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