Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Battle.net v1 TCP Messages (SID)
Message Id:0x0A
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
Message Format:
(does not include protocol header)
(STRING) Unique name
(STRING) Statstring
(STRING) Account name 


Contains Client product, realm, statstring, and is sent as the response when the client sends SID_ENTERCHAT. Unique name is the users unique name in chat (Which may be Arta, Arta#2, Arta#3, etc). Account name is the users account name (Which in all 3 previous examples would be Arta).

Once you receive this packet, you are not in a channel, but can join/host games and join channels. Because you are not in a channel, you cannot send text messages yet (but you will not be disconnected if you do). See SID_JOINCHANNEL.




The info above is mostly complete just curious about one thing, example log:
0a 49 00 42 6f 72 65 64 6f 6d 00 50 58 32 44 55 .I.Boredom.PX2DU
53 45 61 73 74 2c 46 61 72 43 72 61 70 2c 84 80 SEast,FarCrap,..
ff ff ff ff ff 1b ff 4f ff ff ff 01 ff ff ff ff ÿÿÿÿÿ.ÿOÿÿÿ.ÿÿÿÿ
ff ff ff ff ff ff ff 01 80 80 ff ff ff ff ff 00 ÿÿÿÿÿÿÿ...ÿÿÿÿÿ.
42 6f 72 65 64 6f 6d 00 Boredom.

Breaks down to:
(DWORD) Protocal Header: ff 0a 49 00
(STRING) Unique Name (Account always?): 42 6f 72 65 64 6f 6d 00
(STRING) Realm Character Statstring: (P)50 (X)58 (2)32 (D)44 (U)55 (S)53 (E)45 (a)61 (s)73 (t)74 (,)2c (F)46 (a)61 (r)72 (C)43 (r)72 (a)61 (p)70 (,)2c 84 80 ff ff ff ff ff 1b ff 4f ff ff ff 01 ff ff ff ff ff ff ff ff ff ff ff 01 80 80 ff ff ff ff ff 00
(STRING) Account name: 42 6f 72 65 64 6f 6d 00

Mainly the unique name is the account name, and the 2nd instance of the account is just a repeat? Or is it possibly used to indicate the account used when logging onto the character thru mcp//realm?


@LordVader: Unique name is the name that everyone see's on Battle.net. Account name is the account you used to login. There is no difference if no one is on your account with you, but if someone is then this would be different than the account name (a #2 and so on would be appended).


Just to provide an example to clarify what JailOut2000 is saying: lets say my bnet username is Kyro. I login with that.

My account name would show as Kyro, while unique name would show as Kyro.

Now, lets say somehow someone else had my username and password, and logged in via a different cdkey using my login info WHILE I was still online.

That persons account name would show as Kyro, while the unique name would show as Kyro#2.


In most cases you can safely ignore the Account name and just use the Unique name, but you may find it useful later, such as when editing your own profile and comparing the names to see if it is your profile or someone else's. Battle.net will allow you to change your profile, even if you're editing it from Kyro#2 (for example), but it will not show the profile data if you have the #2 (or anything other than Account name). So, again, account name is useful for some things, but usually it can be ignored.