home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Inne / Gry / Atomic_Tanks / Atomic-Tanks-5.1.exe / src / network.h < prev    next >
C/C++ Source or Header  |  2010-02-08  |  2KB  |  99 lines

  1. #ifndef NETWORK_HEADER_FILE__
  2. #define NETWORK_HEADER_FILE__
  3.  
  4. /*
  5. This file will contain two sets of headers and data. One for dealing with queued message
  6. and the other for handling server sockets. This queue will be in standard, platform-neutral
  7. C++. However, the sockets will use Linux/UNIX/BSD specific code, which will have to be
  8. updated to run on other operating systems.
  9. -- Jesse
  10. */
  11.  
  12.  
  13. #ifndef TRUE
  14. #define TRUE 1
  15. #endif
  16. #ifndef FALSE
  17. #define FALSE 0
  18. #endif
  19.  
  20. #define MAX_MESSAGE_LENGTH 256
  21.  
  22. typedef struct message_struct
  23. {
  24.   char *text;
  25.   int to;   // which client does the message go to? May not be used as most will go to everyone
  26.   void *next;
  27. } MESSAGE;
  28.  
  29.  
  30.  
  31. class MESSAGE_QUEUE
  32. {
  33. public:
  34.    MESSAGE *first_message, *last_message;
  35.  
  36.    MESSAGE_QUEUE();
  37.    ~MESSAGE_QUEUE();
  38.  
  39.    // add a message to the queue
  40.    bool Add(char *some_text, int to);
  41.  
  42.    // pull the first message from the queue and erase it from the queue
  43.    MESSAGE *Read();
  44.  
  45.    // read the next message in the queue without erasing it
  46.    MESSAGE *Peek();
  47.  
  48.    MESSAGE *Read_To(int to);
  49.  
  50.    // erases the next message in the queue without reading it
  51.    void Erase();
  52.  
  53.    // erase all messages in the queue
  54.    void Erase_All();
  55.    
  56. };
  57.  
  58.  
  59.  
  60. typedef struct send_receive_struct
  61. {
  62.     int listening_port;
  63.     int shut_down;
  64.     void *global;
  65. } SEND_RECEIVE_TYPE;
  66.  
  67.  
  68. #ifdef NETWORK
  69.  
  70. #define MAX_CLIENTS 10
  71. #define DEFAULT_LISTEN_PORT 25645
  72.  
  73. int Setup_Server_Socket(int port);
  74.  
  75. int Setup_Client_Socket(char *server, char *port);
  76.  
  77. int Accept_Incoming_Connection(int my_socket);
  78.  
  79. int Send_Message(MESSAGE *mess, int to_socket);
  80.  
  81. MESSAGE *Receive_Message(int from_socket);
  82.  
  83. void Clean_Up_Server_Socket(int my_socket);
  84.  
  85. void Clean_Up_Client_Socket(int my_socket);
  86.  
  87. int Check_For_Incoming_Data(int socket_number);
  88.  
  89. int Check_For_Errors(int socket_number);
  90.  
  91. void *Send_And_Receive(void *data_we_need);
  92.  
  93. #endif
  94.  
  95.  
  96.  
  97. #endif
  98.  
  99.