public static void 发送信息(网络数据标识 ID, byte[] 信息) { byte[] IDt = 步系统.STB(ID); byte[] 数据 = new byte[IDt.Length + 信息.Length]; Buffer.BlockCopy(IDt, 0, 数据, 0, IDt.Length); Buffer.BlockCopy(信息, 0, 数据, IDt.Length, 信息.Length); foreach (string 地址 in 外端IP) { 本地.SendTo(数据, new IPEndPoint(IPAddress.Parse(地址), 务器端口)); } print(ID.编号 + ID.网络ID + "发送" + (数据类型)ID.类型); }
private static void 处理信息(object 信息) { byte[] 原数据 = (byte[])信息; byte[] 标识t = new byte[12]; Buffer.BlockCopy(原数据, 0, 标识t, 0, 12); byte[] 数据t = new byte[原数据.Length - 12]; Buffer.BlockCopy(原数据, 12, 数据t, 0, 原数据.Length - 12); 网络数据标识 标识 = 步系统.BTS <网络数据标识>(标识t, 标识t.Length); if (标识.类型 != 0) { for (int i = 0; i < 3 && !网络物体身份.网络物体清单.ContainsKey(标识.编号.ToString() + 标识.网络ID); i++) { Thread.Sleep(500); } 网络物体身份.网络物体清单[标识.编号.ToString() + 标识.网络ID].步工具[(数据类型)标识.类型].本地更新(数据t); } else { 未实例物体.Enqueue(new 全局ID(Encoding.Default.GetString(数据t), 标识.网络ID, 标识.编号)); } print(标识.编号.ToString() + 标识.网络ID + "接受" + (数据类型)标识.类型); }