udp_protocol.h
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 1998  Mark Baysinger (mbaysing@ucsd.edu)
  3.  * Copyright (C) 1998,1999,2000,2001  Ross Combs (rocombs@cs.nmsu.edu)
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License
  7.  * as published by the Free Software Foundation; either version 2
  8.  * of the License, or (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  */
  19. #ifndef INCLUDED_UDP_PROTOCOL_TYPES
  20. #define INCLUDED_UDP_PROTOCOL_TYPES
  21. /*
  22.  * This file describes the UDP chat packets. The game packets aren't
  23.  * in here and would probably go in another file.  The first 4 bytes
  24.  * seem to be a little-endian 32 bit integer id for the packet type.
  25.  * FIXME: add more UDP packet types
  26.  */
  27. /******************************************************/
  28. typedef struct
  29. {
  30.     bn_int type;
  31. } t_udp_header PACKED_ATTR();
  32. /******************************************************/
  33. /******************************************************/
  34. typedef struct
  35. {
  36.     t_udp_header h;
  37. } t_udp_generic PACKED_ATTR();
  38. /******************************************************/
  39. /******************************************************/
  40. /* client echos back with UDPOK packet */
  41. /*
  42. 05 00 00 00 74 65 6E 62                              ....tenb
  43. */
  44. #define SERVER_UDPTEST 0x00000005
  45. typedef struct
  46. {
  47.     t_udp_header h;
  48.     bn_int       bnettag;  /* 74 65 6E 62 */
  49. } t_server_udptest PACKED_ATTR();
  50. /******************************************************/
  51. /******************************************************/
  52. /*
  53. 07 00 00 00 49 41 19 00                              ....IA..
  54. 07 00 00 00 11 60 1D 00                              .....`..
  55. */
  56. #define CLIENT_UDPPING 0x00000007
  57. typedef struct
  58. {
  59.     t_udp_header h;
  60.     bn_int       unknown1;  /* time? */
  61. } t_client_udpping PACKED_ATTR();
  62. /******************************************************/
  63. /******************************************************/
  64. /*
  65. From Brood War 1.04
  66. 08 00 00 00 75 EC A0 28                              ....u..(
  67. */
  68. #define CLIENT_SESSIONADDR1 0x00000008
  69. typedef struct
  70. {
  71.     t_udp_header h;
  72.     bn_int       sessionkey;
  73. } t_client_sessionaddr1 PACKED_ATTR();
  74. /******************************************************/
  75. /******************************************************/
  76. /*
  77. From Brood War 1.07
  78. 09 00 00 00 7A 11 07 ED   9D DF 01 00                ....z.......
  79. */
  80. #define CLIENT_SESSIONADDR2 0x00000009
  81. typedef struct
  82. {
  83.     t_udp_header h;
  84.     bn_int       sessionkey;
  85.     bn_int       sessionnum;
  86. } t_client_sessionaddr2 PACKED_ATTR();
  87. /******************************************************/
  88. #endif