build.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #define _WINSOCK_DEPRECATED_NO_WARNINGS
  2. #define ENET_IMPLEMENTATION
  3. #include "enet.h"
  4. #include <stdio.h>
  5. int main() {
  6. if (enet_initialize () != 0) {
  7. printf("An error occurred while initializing ENet.\n");
  8. return 1;
  9. }
  10. ENetAddress address = {0};
  11. address.host = ENET_HOST_ANY; /* Bind the server to the default localhost. */
  12. address.port = 7777; /* Bind the server to port 7777. */
  13. #define MAX_CLIENTS 32
  14. /* create a server */
  15. ENetHost * server = enet_host_create(&address, MAX_CLIENTS, 2, 0, 0);
  16. if (server == NULL) {
  17. printf("An error occurred while trying to create an ENet server host.\n");
  18. return 1;
  19. }
  20. printf("Started a server...\n");
  21. ENetEvent event;
  22. /* Wait up to 1000 milliseconds for an event. (WARNING: blocking) */
  23. while (enet_host_service(server, &event, 1000) > 0) {
  24. switch (event.type) {
  25. case ENET_EVENT_TYPE_CONNECT:
  26. printf("A new client connected from ::1:%u.\n", event.peer->address.port);
  27. /* Store any relevant client information here. */
  28. event.peer->data = "Client information";
  29. break;
  30. case ENET_EVENT_TYPE_RECEIVE:
  31. printf("A packet of length %zu containing %s was received from %s on channel %u.\n",
  32. event.packet->dataLength,
  33. event.packet->data,
  34. (char *)event.peer->data,
  35. event.channelID);
  36. /* Clean up the packet now that we're done using it. */
  37. enet_packet_destroy (event.packet);
  38. break;
  39. case ENET_EVENT_TYPE_DISCONNECT:
  40. printf ("%s disconnected.\n", (char *)event.peer->data);
  41. /* Reset the peer's client information. */
  42. event.peer->data = NULL;
  43. break;
  44. case ENET_EVENT_TYPE_DISCONNECT_TIMEOUT:
  45. printf ("%s timeout.\n", (char *)event.peer->data);
  46. event.peer->data = NULL;
  47. break;
  48. case ENET_EVENT_TYPE_NONE: break;
  49. }
  50. }
  51. enet_host_destroy(server);
  52. enet_deinitialize();
  53. return 0;
  54. }