コード例 #1
0
ファイル: TssSendData.cs プロジェクト: fengqk/Art
	void trySend()
	{
		if (++m_tickcount < 60)
			return;

		m_tickcount = m_tickcount % 60;

		IntPtr addr = TssSdk.tss_get_report_data();

		if(ECGameSession.Instance().IsConnected == false)
			return;

		if (addr != IntPtr.Zero)
		{
			IntPtr anti_data = IntPtr.Zero;
			ushort anti_data_len = 0;
			if (TssSdk.Is64bit())
			{
				short anti_data_len_temp = Marshal.ReadInt16(addr, 0);
				Int64 anti_data_temp = Marshal.ReadInt64(addr, 2);
				anti_data_len = (ushort)anti_data_len_temp;
				anti_data = new IntPtr(anti_data_temp);
			}
			else if (TssSdk.Is32bit())
			{
				short anti_data_len_temp = Marshal.ReadInt16(addr, 0);
				Int64 anti_data_temp = Marshal.ReadInt32(addr, 2);
				anti_data_len = (ushort)anti_data_len_temp;
				anti_data = new IntPtr(anti_data_temp);

			}

			if (anti_data != IntPtr.Zero)
			{
				byte[] data = new byte[anti_data_len];
				Marshal.Copy(anti_data, data, 0, anti_data_len);

				GNET.Common.OctetsStream os = new GNET.Common.OctetsStream();
				os.marshal_long((long)m_roleId);
				os.marshal(data);
				int nProtolNum = 8910;
				CommonData netdata = new CommonData(nProtolNum, os);
				ECGameSession gs = ECGameSession.Instance();
				gs.SendNetData(netdata);

				TssSdk.tss_del_report_data(addr);
			}
		}

	}