Indev

The fix you made for the overflow exception did not quite work as you were still using Convert.ToInt16 which would still overflow on high ports.  I've now merged my changes on to the Indev branch and tested it and it seems to work ok.  I think the choice of ushort is better because the tcp rfc specifies that a port is a maximum of 16 bits long and you can't have negative port numbers. 

Console Client for MC 1.4.6 to 1.8.1 - v1.8.0 - By ORelio & Contributors
Username : xxxxxxxxx
Password : <******>                                                                                                                                                                                                Connecting to Minecraft.net...
Success. (session ID: xxxxxxxxxxx)
Server IP : xxxxxxxxx.com:40003
Retrieving Server Info...
Downloading 'en_GB.lang' from Mojang servers...
Done. File saved as 'lang/en_GB.lang'
Translations file loaded.
Version is supported.
Logging in...
Crypto keys & hash generated.
Checking Session...
Server was successfully joined.
Type '/quit' to leave the server.
>meep
<lokulin> meep 
<okstyr> beep