public override bool Connect() { if (!base.Connect()) return false; //Send the FileConnectHeader UruStream s = new UruStream(new NetworkStream(fSocket, false)); s.BufferWriter(); fHeader.Write(s); s.WriteUInt(12); //Size s.WriteUInt(0); s.WriteUInt(0); s.FlushWriter(); s.Close(); fSocket.BeginReceive(new byte[4], 0, 4, SocketFlags.Peek, new AsyncCallback(IReceive), null); return true; }
public override bool Connect() { if (!base.Connect()) return false; //Send the GateConnectHeader UruStream s = new UruStream(new NetworkStream(fSocket, false)); s.BufferWriter(); fHeader.Write(s); s.WriteInt(20); s.WriteBytes(Guid.Empty.ToByteArray()); s.FlushWriter(); s.Close(); //Init encryption if (!base.NetCliConnect(4)) return false; fSocket.BeginReceive(new byte[2], 0, 2, SocketFlags.Peek, new AsyncCallback(IReceive), null); return true; }
protected virtual bool NetCliConnect(int g) { UruStream s = new UruStream(new NetworkStream(fSocket, false)); //NetCliConnect ISetupKeys(g); s.BufferWriter(); s.WriteByte((byte)NetCliConnectMsg.kNetCliConnect); s.WriteByte(66); s.WriteBytes(fDhData); s.FlushWriter(); //Recv NetCliEncrypt if (s.ReadByte() != (byte)NetCliConnectMsg.kNetCliEncrypt) { fSocket.Close(); return false; } byte[] seed = s.ReadBytes((int)(s.ReadByte() - 2)); ISetupEncryption(seed); s.Close(); return true; }
public override bool Connect() { if (!base.Connect()) return false; //Send the AuthConnectHeader UruStream s = new UruStream(new NetworkStream(fSocket, false)); s.BufferWriter(); fHeader.Write(s); s.WriteInt(20); s.WriteBytes(Guid.Empty.ToByteArray()); s.FlushWriter(); s.Close(); //Init encryption if(!base.NetCliConnect(41)) return false; //Register the client... //Don't require the user to do this. Auth_RegisterRequest req = new Auth_RegisterRequest(); req.fBuildID = fHeader.fBuildID; fStream.BufferWriter(); fStream.WriteUShort((ushort)AuthCli2Srv.ClientRegisterRequest); req.Write(fStream); fStream.FlushWriter(); fSocket.BeginReceive(new byte[2], 0, 2, SocketFlags.Peek, new AsyncCallback(IReceive), null); fChgHack.Reset(); fChgHack.WaitOne(); return true; }