public override void reciever(IPEndPoint from, byte[] data) { VSCAnswerHeader header; string deviceIP, deviceModel, deviceSerial; IPAddress ip; if (data.Length < typeof(VSCAnswerHeader).StructLayoutAttribute.Size) { Logger.getInstance().WriteLine(Logger.DebugLevel.Warn, String.Format("Warning: VStartCam.reciever(): Packet has wrong size = {0} (packet is too small)", data.Length)); return; } header = data.GetStruct <VSCAnswerHeader>(); if (NetworkUtils.NetworkToHostOrder32(header.answerMagic) != answerMagic) { Logger.getInstance().WriteLine(Logger.DebugLevel.Warn, String.Format("Warning: VStartCam.reciever(): Packet has wrong header.")); return; } deviceIP = Encoding.UTF8.GetString(header.ip); deviceModel = Encoding.UTF8.GetString(header.name); deviceSerial = Encoding.UTF8.GetString(header.serial); if (IPAddress.TryParse(deviceIP, out ip)) { viewer.deviceFound(name, 1, ip, deviceModel, deviceSerial); } else { viewer.deviceFound(name, 1, from.Address, deviceModel, deviceSerial); } }
private IPAddress readAnswer_A(byte[] data, ref int position, int dataLen) { UInt32 ipVal; if (dataLen != 4) { Logger.getInstance().WriteLine(Logger.DebugLevel.Warn, "Warning: readAnswer_A(): Invalid address size!"); return(IPAddress.Any); } ipVal = NetworkUtils.NetworkToHostOrder32(readUInt32(data, ref position)); return(new IPAddress(ipVal)); }
private IPAddress readAnswer_A(byte[] data, ref int position, int dataLen) { UInt32 ipVal; if (dataLen != 4) { Logger.LogWarning("Warning: readAnswer_A(): Invalid address size!"); return(IPAddress.Any); } ipVal = NetworkUtils.NetworkToHostOrder32(readUInt32(data, ref position)); return(new IPAddress(ipVal)); }