public void Start() {
try {
IP = ((IPEndPoint)(client.Client.RemoteEndPoint)).Address;
if( Server.RaiseSessionConnectingEvent( IP ) ) return;
reader = new BinaryReader( client.GetStream() );
writer = new PacketWriter( client.GetStream() );
Logger.Log( "Session.Start: Incoming connection from {0}", LogType.Debug,
IP );
ioThread = new Thread( IoLoop ) {
Name = "fCraft.Session",
IsBackground = true
};
ioThread.Start();
} catch( Exception ex ) {
Logger.LogAndReportCrash( "Session failed to start", "fCraft", ex, false );
Disconnect();
}
}