--Overview--

We have three xenon applications for testing GameTalk.  One of them uses WinSock, another uses DirtySock and the other uses UTFSockets.  We also have a PC application for testing GameTalk.

There are two applications that can work in conjuncture with any of the Xenon GameTalk Test Apps (samples\xenon):
- GameTalkZ client (in the GameTalk solution) - C# windows application 
- GameTalkXCPP (also in the GameTalk solution) - C++ console application

The above two app's are able to work with the Xenon GameTalk Test app in the sense that they can perform some basic parsing and validation of the messages from the xenon GameTalk test app.

--Instructions on using the Xenon GameTalk Testing App (XGTA)--

- Press X to tell the application to keep sending messages until you press Y - these messages are composed of 1 int and 9 floats (comma delimited).  These messages will be sent at whatever framerate the app is running at.  All the numbers (in the message) will be incremented each time the app sends a message.
- Hold down A to send a burst of messages until you release A (i.e. messages will only be sent while A is depressed).  This message is just a single int (and it will also be incremented for each message sent).  You also get a cool blue triangle shot out from your current position to the origin (yeah totally unnecessary I know)
- Press B button and have the xenon console app send a single message 20 times the size of the messages being sent using the X/Y combo - the GameTalkZ client will also validate this message (since it uses the same number incrementation as the X/Y combo messages).  Each click of B will only yield a single message - unlike Y which will send messages so long as you have Y depressed.

A useful test is to press X, then press and hold A a few times and then press Y.  This results in two sets of traffic being sent to the server at once.  Another useful test is to press X, then click B a few times and then press Y.  Again, this will produce two different sets of traffic.

--GameTalkZ and GameTalkXCPP Applications--

Both these applications (that belongs to the GameTalk solution) will validate all messages from the X/Y combo.  That is to say, when they receive the right type of content, they will increment their local set of numbers and then check to ensure that its local numbers match the numbers that are being sent by the xenon GameTalk test app.  

GameTalkZ - If the messages are matching what the client expects - then you will see a message that says "Validity confirmed" appear in the the message received textbox.  If they don't match, then you GameTalkZ, will stop displaying "Validity confirmed" and in the "Errors" text box you will see the first message number in which the mismatch occurred.

GameTalkXCPP - If the messages are matching what the client expects - then you will see a message that says "Good times: " followed by the message index it is on. If you get a number mismatch, then you will see an error message and this application should stop logging messages.

This is useful to find out whether messages are being dropped, mangled or out of order - which should never happen!

Both applications will also display any messages they don't know how to parse - just so you can see that the client is getting the messages.

--GameTalkXCPP--

This application accepts 3 different hard-coded strings:
"Quit" - allows the client to "nicely/gracefully" quit and close its connection
"StartBuffering" - Tells the server to start buffering messages intended for Game.Xenon
"StopBuffering" - Tells the server to stop buffering messages intended for Game.Xenon

--GameTalkZ--

This application has two ways of validating incoming messages - you can use one of the following methods to validate the messages:
HandleMultiKeyMessageWithTenNumsFullValidation(GameTalkMessage);
OR
HandleMultiKeyMessageWithTenNumsMinimalValidation(GameTalkMessage);

Note: If you use the full validation version (HandleMultiKeyMessageWithTenNumsFullValidation) this can severely degrade the client's ability to keep up with messages being sent by the console.  Since this version will actually completely parse and validate every byte of each message.

GameTalkZ also has a plethora of features for testing out the various parts of GameTalk - all of which should be obvious from the GUI.  One nice testing feature is that you can send bitmap images to either of the xenon applications and they will display that image as a texture.

--Xenon GameTalk Testing App (XGTA)--
When you use XGTA to send messages using the X/Y key combo, you can change the size that is sent by altering the code block that states:
	if (mSendMessages)

You can choose to send either:
SendBigGameTalkMessage();
OR
SendBigGameTalkMessage2();

You can also further modify the size of the message that SendBigGameTalkMessage2() sends by going into that function and altering the macro NUM_KEY_CONTENTS.

