The best way to store a dictionary like the one you have in mind is with a red-black tree.
It has an unfortunate downside though, it is incredibly complex to comprehend and implement. Luckily somebody has already done the leg-work for you: link
As to how you want to send this dictionary to the players, well that depends.
- Does it have to be quick to transfer?
- Does it have to be secure?
- Do the users get to make changes?
- What happens when a word isn't in the dictionary?
My suggestion would be: make a textfile for your dictionary and send it to each player when the game starts. Later on you can make it faster by compressing it to a binary format and more secure by encrypting it with a certificate.
Here's an example of a binary file:
0x54 0x52 0x45 0x45 0x02
0x00 0x48 0x65 0x6C 0x6C
0x6F 0x00 0x01 0x41 0x70
0x70 0x6C 0x65 0x00
That looks like garbage, doesn't it? Now, let's look at it in a hex editor:
Still doesn't look like much, so let's break it down.
First, we have the header:
TREE - 0x54 0x52 0x45 0x45 0x02
A header is not required, but very much advised! It tells you about what type of file this is, what kind of data is in it and how much data it contains.
0x02 at the end there tells us this tree will contain 2 items.
Next, we get an index:
0x00 - index for dictionary item
This tells us item 0 is coming up.
Hello - 0x48 0x65 0x6C 0x6C 0x6F 0x00
This is our first dictionary item: "Hello". The
0x00 at the end tells us we've reached the end of this string.
Now we get another index:
Item 1 is coming up!
Apple - 0x41 0x70 0x70 0x6C 0x00
And now have our second item: "Apple". Now we can build a tree:
 = "Hello"
 = "Apple"
Hope that helps!