          Blast a VB Picture Over TCP/IP
          ------------------------------

This program is a test to see how fast an image can be
sent via a TCP connection using the Winsock control.

DEPLOYING THE DEMO

You'll want to compile the program to an EXE, and
probably deploy a copy to a second machine connected
over the network you want to test.  Typically just an
in-house LAN.

The TCP port used here is 1001.

NOTE: The project requires ADO 2.5 or later!


OPERATING THE DEMO

The program is both client and server, thus you can test
within one machine by setting the "Server to send to"
TextBox to localhost.  This is the default setting.

By running a copy on a second machine you can go to the
first machine and enter the second machine's hostname or
IP address in the "Server to send to" TextBox.

In either case pressing the "Send" button does the
transfer.  Timings are measured along the way and
displayed in a multiline TextBox.

NOTE: When you run the demo, the first Send will almost
      always show larger times than subsequent Sends in
      the same run of the program due to "first time"
      overhead in the program.


WHAT THE PROGRAM IS DOING

The program pulls the Picture property of a PictureBox
control into a PropertyBag.  The serialized PropertyBag
is what gets sent "over the wire."  When this is received
it is loaded into a second PropertyBag and this in turn
is loaded into a second PictureBox.

The sample image included is the Soap Bubbles wallpaper
image from the Windows directory.  It is roughly 68K.
You could load a larger image into the first PictureBox
as well for testing longer transfers, but be warned that
your compile will take a bit longer and the resulting
EXE will be larger!


BLAST TRANSFER FOR MAXIMUM THROUGHPUT

To make things simple and keep the transfer time to the
bare minimum we "blast" transfer the PropertyBag over a
TCP connection.  This means we're using raw TCP with no
extra application protocol overhead.

Start-of-PropertyBag is the first byte received after
the server accepts the inbound connection request.

End-of-PropertyBag is when the connection closes.

Probably the only thing much faster would be to use the
newer APIs in Winsock2 that send a file from the TCP
layer of the protocol stack itself.
