private void SendAndResponse(PacketRequest reqPacket, Action<PacketResponse> actionOnReceived) { SendPacket(reqPacket, (p) => { return reqPacket.SeqNo == PacketResponse.GetSeqNo(p); }, (s, p) => { PacketResponse packet = new PacketResponse(p); packet.SkipHeader(); actionOnReceived(packet); }); }