За последние 24 часа нас посетили 64295 программистов и 1754 робота. Сейчас ищут 870 программистов ...

Работа с сокетами в php

Тема в разделе "PHP для новичков", создана пользователем alex4715, 30 авг 2010.

  1. alex4715

    alex4715 Активный пользователь

    С нами с:
    9 май 2009
    Сообщения:
    35
    Симпатии:
    0
    День добрый.

    У меня возникла потребность написать чат для игрового клиента и сервера с использованием сокетов. Я даже не представляю с чего начать и где взять конкретную инфу по этой теме. Если кто что нибудь знает или имеет ссылочки на статьи, учебники прошу поделиться ;)

    У меня есть на руках сами протоколы:
    Client -> Server

    Код (Text):
    1.  
    2. Login
    3. ID: 0xFF
    4. DWORD: account id
    5. STRING: cookie
    6. DWORD: 0x05
    7.  
    8. Leave Room/Channel
    9. ID: 0x22
    10. STRING: roomname
    11.  
    12. Join Room/Channel
    13. ID: 0x1E
    14. STRING: roomname
    15.  
    16. Pong
    17. ID: 0x02
    18.  
    19. Channel Message
    20. ID: 0x03
    21. STRING: message
    22. DWORD: channel id
    23.  
    24. Whisper
    25. ID: 0x08
    26. STRING: recipient
    27. STRING: message
    28.  
    29. Private Message
    30. ID: 0x1C
    31. STRING: recipient
    32. STRING: message
    33.  
    34. Channel List
    35. ID: 0x1F
    36.  
    37. Whois
    38. ID: 0x2A
    39. STRING: username
    40.  
    41. Clan Message
    42. ID: 0x13
    43. STRING: message
    44.  
    45. Clan Invite
    46. ID: 0x47
    47. STRING: user
    Server -> Client
    Код (Text):
    1.  
    2.  
    3.  
    4. Response Login
    5. ID: 0x00
    6. You must respond to this packet with 0x012A
    7. [edit]
    8. Ping
    9. ID: 0x01
    10. You must respond to this packet with pong
    11.  
    12. Chat Message
    13. ID: 0x03
    14. DWORD: account id
    15. DWORD: channel id
    16. STRING: message
    17.  
    18. Response Join Room/Channel
    19. ID: 0x04
    20. STRING: channel
    21. DWORD: channel id
    22. BYTE: unknown (channel flags? 0x18)
    23. STRING: topic
    24. DWORD: op count
    25. DWORD: account id
    26. BYTE: type
    27. DWORD: user count
    28. STRING: name
    29. DWORD: account id
    30. BYTE: state
    31. BYTE: flags
    32.  
    33. Notification Message
    34. ID: 0x12
    35. BYTE: ID(?) of the notification
    36. STRING: The message displayed.
    37.  
    38. Player Joined Chat
    39. ID: 0x05
    40. STRING: name
    41. DWORD: account id
    42. DWORD: channel id
    43. BYTE: state
    44. BYTE: flags
    45.  
    46. Player Left Chat
    47. ID: 0x06
    48. DWORD: account id
    49. DWORD: channel id
    50.  
    51. Whisper
    52. ID: 0x08
    53. STRING: user
    54. STRING: message
    55.  
    56. Buddy List
    57. ID: 0x0B
    58. DWORD: count
    59. DWORD: account id
    60. BYTE: state
    61. BYTE: flags
    62. STRING: server (if in lobby/in game)
    63. STRING: game name (if in game)
    64.  
    65. User Status Update
    66. ID: 0x0C
    67. DWORD: account id
    68. BYTE: state
    69. BYTE: flags
    70. DWORD: clan id
    71. STRING: clan
    72. STRING: server (if in lobby/in game)
    73. STRING: game name (if in game)
    74. DWORD: match id
    75.  
    76. Clan Message
    77. ID: 0x13
    78. DWORD: buddy id
    79. STRING: message
    80.  
    81. Private Message
    82. ID: 0x1C
    83. STRING: user
    84. STRING: message
    85.  
    86. Channel List
    87. ID: 0x1F
    88. DWORD: count
    89. DWORD: channel id
    90. STRING: name
    91. DWORD: user count
    92.  
    93. Whois (Not Found)
    94. ID: 0x2B
    95. STRING: Username
    96.  
    97. Whois (Offline)
    98. ID: 0x2C
    99. STRING: Username
    100. STRING: Last Seen
    101.  
    102. Whois (In Channels)
    103. ID: 0x2D
    104. STRING: Username
    105. DWORD: count
    106. STRING: channel
    107.  
    108. Whois (In Game)
    109. ID: 0x2E
    110. STRING: game name
    111. STRING: game time
    112.  
    113. Online Count
    114. ID: 0x68
    115. DWORD: Number of online players
    116. [edit]
    117. Flags
    118.  
    119. User States
    120. Offline: 0x00
    121. Online: 0x03
    122. In Lobby: 0x04
    123. In Game: 0x05
    124.  
    125. User Flags
    126. None: 0x00
    127. Moderator: 0x01
    128. Founder: 0x02
    129. Prepurchased:0x40
    А что с протаколами этими делать я не представляю даже ;)