public void writePrimitive(DatagramOut dg, string type_n, object value) { switch (type_n) { case "uint8": dg.Write((Byte)value); break; case "uint16": dg.Write((UInt16)value); break; case "uint32": dg.Write((UInt32)value); break; case "uint64": dg.Write((UInt64)value); break; case "int8": dg.Write((SByte)value); break; case "int16": dg.Write(Convert.ToInt16(value)); // bad bad bad shadow TODO: properly implement floating types and nuke OTP's math break; case "int32": dg.Write((Int32)value); break; case "int64": dg.Write((Int64)value); break; case "string": dg.Write((String)value); break; case "blob": dg.Write((byte[])value); break; case "float64": dg.Write((double)value); break; default: Debug.Log("Writing Error: Type '" + type_n + "' is not a primitive"); break; } }
public void sendClientHello(string version, UInt32 dcHash) { odgram.Write((UInt16)MessageTypes.CLIENT_HELLO); odgram.Write(dcHash); odgram.Write(version); sout.Flush(writer); }