S>C 0x25 SID_PING
Transport Layer: | Transmission Control Protocol (TCP) |
---|---|
Application Layer: | Battle.net v1 TCP Messages (SID) |
Message Id: | 0x25 |
Message Name: | SID_PING |
Direction: | Server to Client |
Used By: | Starcraft Original, Starcraft Broodwar Starcraft Shareware, Starcraft Japanese Diablo Retail, Diablo Shareware Diablo II, Diablo II Lord of Destruction Warcraft II BNE, Warcraft III Reign of Chaos Warcraft III The Frozen Throne |
Message Format: (does not include protocol header) |
|
Remarks
Used to calculate Client's ping. The received UINT32 should be sent directly back to Battle.net.
The ping displayed when in chat can be artificially inflated by delaying before sending this packet, or deflated by responding before requested.
Ping can be set to -1 (Strictly speaking, 0xFFFFFFFF, since ping is unsigned) by not responding to this packet at all.
The received UINT32 is not what determines your ping, but it is actually a cookie for the Battle.net server. You should never change the UINT32.
Comments
On Starcraft Broodwar, I theorize that this is sent by the server if you never send any data back to Battle.net when Battle.net expects you to. How I theorize this? I debugged Starcraft, and made it 'Pause'. I resumed it and Battle.net had sent SID_PING multiple times. It never sent SID_PING ever again until I paused for about 10-20 seconds then resumed.
If you do not send any data back to Battle.net after a certain period of time, but Battle.net knows you WERE sending data, Battle.net will send this packet to you.